Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Общие вопросы > Стандартный вывод в определённую позицию


Автор: Cheloveck 2.6.2009, 23:23
Итак, нужно выводить одну строку и периодически её менять. Эффект тот же, что у wget в выводе статуса выполнения.

Требуется:
1) Никаких Win32 API, MFC, Borland'а, etc.
2) Огромные библиотеки, вроде Qt или GTK так же не желательны, ибо много зависимостей с сабой таскать не хочется.
3) Вариант с ncurses рассмотрен и оставлен в запас.
4) Кроссплатформенность, то есть никаких conio.h.
5) Использовать любые переносимые библиотеки, которые есть под Windows и UNIX, аки STL или Boost. 

Пожалуйста, предлагайте любые варианты.

Автор: yeputons 3.6.2009, 10:25
Код

int main() {
  printf("  "); // Выводим два пробела
  for (int i = 10; i >= 0; i--) {
    printf("\b\b"); // Передвигаем курсор на две позиции назад
    printf("%02d", i); // Пишем новое число
    // Чего-нибудь делаем
  }
}


Автор: Cheloveck 3.6.2009, 11:36
Спасибо, то, что надо!!!

Автор: xvr 3.6.2009, 13:46
Еще есть код '\r' - переводит позицию вывода в начало строки

Автор: Cheloveck 3.6.2009, 16:49
xvr, c \r будут проблемы в MacOS, думаю.

Автор: xvr 3.6.2009, 17:45
Цитата(Cheloveck @ 3.6.2009,  16:49)
xvr, c \r будут проблемы в MacOS, думаю.

Хз, вроде не должно. С Маками не сталкивался, надо поставить эксперимент  smile 

Автор: Cheloveck 3.6.2009, 19:12
xvr, так там же, вроде, \r - это перевод строки.

Автор: xvr 3.6.2009, 20:02
Цитата(Cheloveck @ 3.6.2009,  19:12)
xvr, так там же, вроде, \r - это перевод строки.

Нет, '\r' - это перевод каретки (Carridge Return), а '\n' - перевод строки (Line Feed). На терминале эти символы делают одно и то же в любой ОС (по крайней мере должны, если терминал им не припишет каких нибудь дополнительных действий - он может).
А вот использование этих символов для обозначения конца строки в текстовых файлах отличается от ОС к ОС, и не имеет никакой (ну почти никакой) связи с выводом их же на терминал

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)