The OpenNET Project / Index page

[ новости /+++ | форум | wiki | теги | ]

форумы  помощь  поиск  регистрация  майллист  ВХОД  слежка  RSS
"Как в Linux в Shell (на C) написать фразу в конкретном месте..."
Вариант для распечатки Архивированная нить - только для чтения! 
Пред. тема | След. тема 
Форумы Программирование под UNIX (Public)
Изначальное сообщение [Проследить за развитием треда]

"Как в Linux в Shell (на C) написать фразу в конкретном месте..."
Сообщение от MF_s emailИскать по авторуВ закладки on 08-Фев-03, 02:47  (MSK)
Как в Linux в Shell (на C) написать фразу в конкретном месте экрана?
Например как фразу "Hellow, World" написать в центре экрана?
На языке С?
Заранее спасибо за ответ!
  Рекомендовать в FAQ | Cообщить модератору | Наверх

 Оглавление

Индекс форумов | Темы | Пред. тема | След. тема
Сообщения по теме

1. "RE: Как в Linux в Shell (на C) написать фразу в конкретном м..."
Сообщение от Big Shadow Искать по авторуВ закладки on 08-Фев-03, 14:08  (MSK)
>Как в Linux в Shell (на C) написать фразу в конкретном месте
>экрана?
>Например как фразу "Hellow, World" написать в центре экрана?
>На языке С?
>Заранее спасибо за ответ!

Воспользуйтесь esc-последовательностями, см.:
http://subscribe.ru/archive/comp.soft.prog.shellandawk/200301/20200205.html
http://subscribe.ru/archive/comp.soft.prog.shellandawk/200301/27191228.html

  Рекомендовать в FAQ | Cообщить модератору | Наверх

2. "RE: Как в Linux в Shell (на C) написать фразу в конкретном м..."
Сообщение от XMan Искать по авторуВ закладки on 08-Фев-03, 20:35  (MSK)
Кстати. Вспомнил свои давние попытки сделать цвет фона ярко-белым. То бишь не 7-ым цветом, а 15-ым. Так ничего не получилось. Может все-таки можно как-нибудь ?
  Рекомендовать в FAQ | Cообщить модератору | Наверх

3. "RE: Как в Linux в Shell (на C) написать фразу в конкретном м..."
Сообщение от Soldier Искать по авторуВ закладки on 08-Фев-03, 22:21  (MSK)
>Кстати. Вспомнил свои давние попытки сделать цвет фона ярко-белым. То бишь не
>7-ым цветом, а 15-ым. Так ничего не получилось. Может все-таки можно
>как-нибудь ?

Ниже фрагмент моих первых "научных" экспериментов (я тогда про curses еще не слышал) под Линукс. Вроде ответ и на твой вопрос тоже.

//================================
#define black      0
#define red        1
#define green      2
#define brown      3
#define blue       4
#define magenta    5
#define cyan       6
#define gray       7
#define ltred      9
#define ltgreen   10
#define yellow    11
#define ltblue    12
#define ltmagenta 13
#define ltcyan    14
#define white     15

void gotoxy(int col, int row) {
printf("\x1B[%i;%iH",row,col);
}

void clrscr(void) {
puts("\x1B[H\x1B[J");
}

void textattr(unsigned char attr) {
if (attr &   8) printf("\x1B[1m");
else printf("\x1B[0m");
printf("\x1B[3%im\x1B[4%im",attr & 7, (attr >> 4) & 7);
}

main() {
unsigned char textcolor=white;
unsigned char backcolor=red;
clrscr();
gotoxy(10,10);
textattr(textcolor+16*backcolor);
printf("Hello, world\n");
textattr(gray+black*16);
gotoxy(10,11);
puts("press ENTER");
getchar();
printf("\033c");
}
//===============================

  Рекомендовать в FAQ | Cообщить модератору | Наверх

4. "RE: Как в Linux в Shell (на C) написать фразу в конкретном м..."
Сообщение от XMan Искать по авторуВ закладки on 09-Фев-03, 02:27  (MSK)
Неа. Он тоже ставит цвет фона 7, хотя задается 15. Тоже происходит со всеми цветами из старшей октавы. Есть подозрение, что при выводе в байт атрибута выполняется "attr &= 0x7F", дабы очистить бит мигания невзирая на выключенное предварительно мигание (теоретически в линухе - включенное 16 цветов фона; реально у адаптера так и есть).
  Рекомендовать в FAQ | Cообщить модератору | Наверх

5. "RE: Как в Linux в Shell (на C) написать фразу в конкретном м..."
Сообщение от Soldier Искать по авторуВ закладки on 09-Фев-03, 07:28  (MSK)
>Неа. Он тоже ставит цвет фона 7, хотя задается 15. Тоже происходит
>со всеми цветами из старшей октавы. Есть подозрение, что при выводе
>в байт атрибута выполняется "attr &= 0x7F", дабы очистить бит мигания
>невзирая на выключенное предварительно мигание (теоретически в линухе - включенное 16
>цветов фона; реально у адаптера так и есть).


Торможу временами :))). Я с чего-то решил что тебя цвет текста интересует :))). Под ДОС я такие фокусы через int 10h проделывал, а под Линукс не знаю, может и есть какие эскейпы - покопаюсь на досуге.

  Рекомендовать в FAQ | Cообщить модератору | Наверх

6. "RE: Как в Linux в Shell (на C) написать фразу в конкретном м..."
Сообщение от Bootmen emailИскать по авторуВ закладки on 09-Фев-03, 16:12  (MSK)
>Кстати. Вспомнил свои давние попытки сделать цвет фона ярко-белым. То

Может так ярко будет-
:
#
setcolor black lt_cyan
echo "^[[1m"
banner Hello!
setcolor -n
#

  Рекомендовать в FAQ | Cообщить модератору | Наверх

7. "RE: Как в Linux в Shell (на C) написать фразу в конкретном м..."
Сообщение от XMan Искать по авторуВ закладки on 09-Фев-03, 20:43  (MSK)
У меня нет утилит setcolor и banner. Но ставить bold ( [1m ) я пробовал - изменяется только цвет символов. В Konsole можно добиться ярких цветов фона пользуя инверсию ( tput rev, теоретически [7m ), но в обычной консоли оно не помогает - все равно цвет 7 вместо 15 получается.
  Рекомендовать в FAQ | Cообщить модератору | Наверх

8. "RE: Как в Linux в Shell (на C) написать фразу в конкретном м..."
Сообщение от Bootmen emailИскать по авторуВ закладки on 10-Фев-03, 02:16  (MSK)
>У меня нет утилит setcolor и banner. Но ставить bold ( [1m
>) я пробовал - изменяется только цвет символов. В Konsole можно
>добиться ярких цветов фона пользуя инверсию ( tput rev, теоретически [7m
>), но в обычной консоли оно не помогает - все равно
>цвет 7 вместо 15 получается.
Да вообщето эти утилиты из SCO
Но чтото подумал в UNIX машинах все утилиты стандартные.


  Рекомендовать в FAQ | Cообщить модератору | Наверх


Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Пожалуйста, прежде чем написать сообщение, ознакомьтесь с данными рекомендациями.




Спонсоры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2022 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру