Такой маленький вопросик: Как в консоле вывести строку в указанной позиции (x, y) на экране???
P.S. юзаю FreeBSD
Вывод строки в указанной позиции (Как вывести строку в указанной позиции)
Модератор: Модераторы разделов
-
elide
- Бывший модератор
- Сообщения: 2421
- Статус: Übermensch
- ОС: лялих
Re: Вывод строки в указанной позиции
вообще говоря, никак.
но в большинстве случаев curses будет работать.
можно напрямую через terminfo. man tputs и далее по ссылкам.
но в большинстве случаев curses будет работать.
можно напрямую через terminfo. man tputs и далее по ссылкам.
слава роботам!
-
sergeyvp
- Сообщения: 807
- ОС: ubuntu
Re: Вывод строки в указанной позиции
Да нет, сделать можно.
В книге "Программирование для UNIX" (Рочкинд) даже вроде написано как это сделать.
У меня просто не хватит мозгов коротко это изложить, а перепечатывать всю главу из книги лень
-
elide
- Бывший модератор
- Сообщения: 2421
- Статус: Übermensch
- ОС: лялих
Re: Вывод строки в указанной позиции
если у тебя есть терминал, который может только последовательно выдавать символы, изредка переводя строку и возвращая каретку (матричный принтер, например), то вообще никак нельзя. хоть ты три книжки прочитай...Да нет, сделать можно
слава роботам!
-
serzh-z
- Бывший модератор
- Сообщения: 8259
- Статус: Маньяк
- ОС: Arch, Fedora, Ubuntu
Re: Вывод строки в указанной позиции
Кстати, любопытно - как curses/ncurses работают...
-
Liksys
- Сообщения: 2910
Re: Вывод строки в указанной позиции
Есть управляющие последовательности. Для каждого терминала они свои. Последовательности парсятся из базы terminfo. Используя эти последовательности, можно управлять курсором на экране , выводить символы и устанавливать цвета.
-
elide
- Бывший модератор
- Сообщения: 2421
- Статус: Übermensch
- ОС: лялих
Re: Вывод строки в указанной позиции
serzh-z
это просто большая и довольно нетривиальная обёртка над tputs и ещё несколькими.
это просто большая и довольно нетривиальная обёртка над tputs и ещё несколькими.
слава роботам!
-
serzh-z
- Бывший модератор
- Сообщения: 8259
- Статус: Маньяк
- ОС: Arch, Fedora, Ubuntu
Re: Вывод строки в указанной позиции
Хочется подытожить: грубо говоря, сущестует более или менее определенный или стандартизованный набор тех самых escape-последовательностей (которые вставляются приложением напрямую в поток, либо неявно, через программные интерфейсы наподобие *curses), которые средствами terminfo сотоварищи (tputs и т.д.) мепятся на различные фичи (для большинства типов терминалов схожие - переместить курсор, изменить цвет и т.д.) терминалов. Ага?
-
elide
- Бывший модератор
- Сообщения: 2421
- Статус: Übermensch
- ОС: лялих
Re: Вывод строки в указанной позиции
наоборот.грубо говоря, сущестует более или менее определенный или стандартизованный набор тех самых escape-последовательностей (которые вставляются приложением напрямую в поток, либо неявно, через программные интерфейсы наподобие *curses), которые средствами terminfo сотоварищи (tputs и т.д.) мепятся на различные фичи (для большинства типов терминалов схожие - переместить курсор, изменить цвет и т.д.) терминалов. Ага?
есть более-менее стандартный набор фич, которые, если поддерживаются текущим терминалом, мапятся на какие-то escape-последовательности (: последовательности при этом могут быть совершенно произвольные.
хотя иногда они и совпадают со стандартными ANSI escape codes.
слава роботам!
-
vi.rus0.log
- Сообщения: 27
- ОС: Ubuntu 7.04 Feisty
Re: Вывод строки в указанной позиции
Это если говорить о C и каком нибудь стандартном терминале типа xterm это можно реализовать с омощью специально заточенных под это библиотек (их много поиши где нить на sf.net)(пример любимый всеми mc он там вообще что то своё мутит). Ну а если конкретнее мой одногрупник умудрился это сделать с помошью стандартной библиотеки conio.h
каждый способен на многое, осталось только забыть фразу "не могу"
-
elide
- Бывший модератор
- Сообщения: 2421
- Статус: Übermensch
- ОС: лялих
Re: Вывод строки в указанной позиции
vi.rus0.log
сразу видно грамотного специалиста...
во-вторых, этот кусок мусора ни разу не является "стандартным".
и в-третьих, я не видел ни одной приличной реализации этой ерунды под *nix. очевидно потому, что она нахрен никому не нужна.
возникает определённая уверенность в том, что узколобая обезьяна на аватаре нарисована неспроста.
сразу видно грамотного специалиста...
mc работает либо поверх curses, либо поверх slang. ничего своего он не мутит.любимый всеми mc он там вообще что то своё мутит
во-первых, conio.h - это не библиотека. это один единственный хедер.это сделать с помощью стандартной библиотеки conio.h
во-вторых, этот кусок мусора ни разу не является "стандартным".
и в-третьих, я не видел ни одной приличной реализации этой ерунды под *nix. очевидно потому, что она нахрен никому не нужна.
возникает определённая уверенность в том, что узколобая обезьяна на аватаре нарисована неспроста.
слава роботам!
-
eduard_pustobaev
- Сообщения: 2629
- Статус: Ленивец
- ОС: Arch/Debian.
Re: Вывод строки в указанной позиции
vi.rus0.log писал(а): ↑06.04.2007 18:51Ну а если конкретнее мой одногрупник умудрился это сделать с помошью стандартной библиотеки conio.h
Какой? Из Borland C++? С ней ещё что-либо делать можно. В той, что в minGW функций маловато, curses для винды помощнее будет. В Линукс тем более этой хрени не наблюдается.
P.S. Хотя мне conio нравится. Мегапростенькая либа, а для окошек несложных вполне хватало, как и для вещей типа сабжа. В curses всё-таки заморочек поболе будет.
В дисгармонии со вселенной.