Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: Esc-последовательности  (Прочитано 12900 раз)
0 Пользователей и 1 Гость смотрят эту тему.
larry
Участник

ua
Offline Offline

« : 05-11-2009 10:07 » 

Добрый день! Столкнулся с такой проблемой... Не знаю, как в консоли с помощью управляющих последовательностей перевести каретку  на строку вверх... Допустим, \n переводит на новую строку, то как перевести на предыдущую? Улыбаюсь
« Последнее редактирование: 05-11-2009 10:24 от Sel » Записан
Джон
просто
Администратор

de
Offline Offline
Пол: Мужской

« Ответ #1 : 05-11-2009 10:12 » 

А как выглядит эта последовательность не в консоли?
Записан

Я вам что? Дурак? По выходным и праздникам на работе работать. По выходным и праздникам я работаю дома.
"Just because the language allows you to do something does not mean that it’s the correct thing to do." Trey Nash
"Physics is like sex: sure, it may give some practical results, but that's not why we do it." Richard P. Feynman
"All science is either physics or stamp collecting." Ernest Rutherford
"Wer will, findet Wege, wer nicht will, findet Gründe."
larry
Участник

ua
Offline Offline

« Ответ #2 : 05-11-2009 10:17 » 

если использовать printf, то она также и выглядит...в шестнадцатиричном кажется \x0d...
Записан
Джон
просто
Администратор

de
Offline Offline
Пол: Мужской

« Ответ #3 : 05-11-2009 10:31 » 

Я имел ввиду как выглядит ESС-последовательность для перехода на предыдущую строку.
Записан

Я вам что? Дурак? По выходным и праздникам на работе работать. По выходным и праздникам я работаю дома.
"Just because the language allows you to do something does not mean that it’s the correct thing to do." Trey Nash
"Physics is like sex: sure, it may give some practical results, but that's not why we do it." Richard P. Feynman
"All science is either physics or stamp collecting." Ernest Rutherford
"Wer will, findet Wege, wer nicht will, findet Gründe."
larry
Участник

ua
Offline Offline

« Ответ #4 : 05-11-2009 10:36 » 

Вот это я и хотел узнать Улыбаюсь, потому что не знаю как это сделать,а сколько ни рылся,то не нашел...но ведь должна же быть...в борланде была функция gotoxy()(для позиционирования), а вот в вижуале нет...
Записан
Вад
Модератор

ru
Offline Offline
Пол: Мужской

« Ответ #5 : 05-11-2009 10:40 » 

Есть API-функция SetConsoleCursorPosition

На одном из форумов попалась реализация обёртки - видимо, как раз для единообразия с gotoxy():
Код:
void gotoxy ( short x, short y )
{
    COORD coord = {x, y};
    SetConsoleCursorPosition ( GetStdHandle ( STD_OUTPUT_HANDLE ), coord );
}
Записан
Dimka
Деятель
Команда клуба

ru
Offline Offline
Пол: Мужской

« Ответ #6 : 05-11-2009 10:43 » 

Если речь идёт про ANSI-терминал, то перевод курсора в любую позицию, это: printf("\x1b[%i;%iH", y, x)

Получить координаты можно через printf("\x1b[6n") и затем читать из стандартного ввода строку в формате "\x1b[%i;%iR", y, x
Записан

Программировать - значит понимать (К. Нюгард)
Невывернутое лучше, чем вправленное (М. Аврелий)
Многие готовы скорее умереть, чем подумать (Б. Рассел)
larry
Участник

ua
Offline Offline

« Ответ #7 : 05-11-2009 10:48 » new

большое спасибо, все отлично работает... Улыбаюсь
Записан
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines