Logo Море(!) аналитической информации!
IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware
Архив форумов ЦИТФорума
Море(!) вопросов - Море(!) ответов
 
 FAQFAQ   ПоискПоиск   ПользователиПользователи   ГруппыГруппы   РегистрацияРегистрация 
 ПрофильПрофиль   Войти и проверить личные сообщенияВойти и проверить личные сообщения   ВходВход 
Как правильно задавать вопросы

Программирование для vt100:Проблема с printf

 
Перейти:  
Этот форум закрыт, вы не можете писать новые сообщения и редактировать старые.   Эта тема закрыта, вы не можете писать ответы и редактировать сообщения.    Список форумов Архив форумов ЦИТФорума -> Unix
Предыдущая тема :: Следующая тема  
Автор Сообщение
VotVopros
Гость





СообщениеДобавлено: Ср Янв 21 2004 10:48    Заголовок сообщения: Программирование для vt100:Проблема с printf Ответить с цитатой

Помогите!!!:
Пишу прогу для вывода псевдографики на vt100.
Терминал в режиме 80*25.

С помощью printf последовательно вывожу:
то псевдографику,
то esc-последовательности (позиционирование курсора).

Как только суммарное количество символов (и в esc-последовательностях, и в текстовом виде) достигает некоторой величины (по моему как раз 80 символов), осуществляется без моего ведома (не знаю на каком уровне) перевод строки.

В итоге я не могу вывести даже символов 50 в одной строке, т.к. после 10 символов происходит перевод строки. На экране вместо красивых рамочек полная абракадабра.

Есть решение у этой проблемы: просто при каждой возможности посылать printf("\n"), тогда происходит как бы очистка некоего буфера - и подсчёт символов начинается вновь.

НО - по ряду причин очень не хочется использовать \n, а напрямую позиционировать курсор.

А самое главное - непонятно: почему же это всё происходит!
Что за счётчик такой в printf в случае, когда работаешь с vt100?

Хочу ещё заметить, что форум я выбрал не совсем правильно.
Дело в том, что под Unix таких глюков как раз не замечал.
Глюк возникает, когда HyperTerm или обычный windows-телнет применяется к 127.0.0.1 + запущен win2k telnet-server...
Однако специалистов, работающих с vt100 по-моему вероятней найти на этом форуме, чем где-либо.

Простите, если вопрос уж очень глупый и уж очень длинный...
Вернуться к началу
VotVopros
Гость





СообщениеДобавлено: Ср Янв 21 2004 13:00    Заголовок сообщения: Ответить с цитатой

Господа,
ну ответьте чего-нибудь,
или подскажите в какой бы ещё форум мне зайти (можно не русский)...
Вернуться к началу
butcher



Зарегистрирован: 18.04.2003
Сообщения: 467
Откуда: Киров

СообщениеДобавлено: Чт Янв 22 2004 08:50    Заголовок сообщения: Ответить с цитатой

спроси на сайте www.RSDN.ru, там программисты..
_________________
Нет ничего невозможного...
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
VotVopros
Гость





СообщениеДобавлено: Пт Янв 23 2004 18:17    Заголовок сообщения: Ответить с цитатой

Половинчатое решение нашлось!!

Проблемы возникали похоже из-за того, что все данные посылались printf-ом в одну строчку. На каком-то уровне происходило переполнение какого-то буфера (знать бы какого!!!) и начинались глюки.
Решение оказалось следующим - если часто вызывать printf("\n\r"), то глюки не возникают. Конечно это не очень удобно, но зато работает, в отличие, скажем, от вызова fflush.

Проблема с выводом как бы решилась, ЗАТО возникла НОВАЯ ПРОБЛЕМА с вводом. Причём природа этих двух проблем видимо схожая....

Лишние esc-последовательности на уровне клиента всё-таки вставляются - в конец и в начало посылаемых данных.
И в результате, если я хочу считать (scanf-ом или getch) с клавиатуры символ, то курсор передвигается в некую фиксированную от раза к разу позицию - где-то в середине экрана.
Никакие esc-последовательности позиционирования курсора не влияют на положение этой позиции.

Ещё могу отметиь, что использование различных telnet клиентов под windows/unix мне не помогло (и с вводом и с выводом)...

p.s. Решение "\n\r" не мог так долго найти, потому что пробовал по отдельности \r и \n, вместе почему-то не пришло в голову попробовать ...
Вернуться к началу
Показать сообщения:   
Этот форум закрыт, вы не можете писать новые сообщения и редактировать старые.   Эта тема закрыта, вы не можете писать ответы и редактировать сообщения.    Список форумов Архив форумов ЦИТФорума -> Unix Часовой пояс: GMT + 3
Страница 1 из 1

 
Перейти:  
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах


Powered by phpBB © 2001, 2002 phpBB Group
Русская поддержка phpBB

 

IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware

Информация для рекламодателей PR-акции, размещение рекламы — adv@citforum.ru,
тел. +7 495 6608306, ICQ 232284597
Пресс-релизы — pr@citforum.ru
Послать комментарий
Информация для авторов
This Web server launched on February 24, 1997
Copyright © 1997-2000 CIT, © 2001-2006 CIT Forum
Внимание! Любой из материалов, опубликованных на этом сервере, не может быть воспроизведен в какой бы то ни было форме и какими бы то ни было средствами без письменного разрешения владельцев авторских прав. Подробнее...