Перемотка станд.:: суд для возвращения к началу строки

Я пишу инструмент командной строки для Mac OS X, который обрабатывает набор файлов. Я хотел бы показать пользователю текущий обрабатываемый файл, но не хочу огромное количество файлов, загрязняющих окно терминала.

Вместо этого я хотел бы использовать одну строку для вывода пути к файлу, затем повторное использование что строка для следующего файла. Есть ли символ (или некоторый другой код) для вывода к std::cout выполнять это?

Кроме того, если бы я хотел перенастроить этот инструмент для Windows, то решением было бы то же для обеих платформ?

23
задан fbrereto 16 June 2010 в 23:46
поделиться

2 ответа

"\r" должно работать как для windows так и для Mac OS X.

Что-то вроде:

std::cout << "will not see this\rwill see this" << std::flush;
std::cout << std::endl; // all done
22
ответ дан 29 November 2019 в 02:56
поделиться

У меня нет доступа к Mac, но с точки зрения чистой консоли это будет во многом зависеть от того, как он обрабатывает символы возврата каретки и перевода строки. Если вы можете буквально отправить одно или другое на консоль, вы хотите отправить только возврат каретки.

Я почти уверен, что Mac обрабатывает возврат каретки и перевод строки иначе, чем * nix и windows.

Если вы ищете обновления на месте (например, перезаписываете текущую строку), я бы рекомендовал посмотреть библиотеку curses . Это должно предоставить независимые от платформы средства для выполнения того, что вы ищете. (потому что даже при использовании стандартного C ++ не существует независимых от платформы средств того, что вы просите).

1
ответ дан 29 November 2019 в 02:56
поделиться
Другие вопросы по тегам:

Похожие вопросы: