Вопрос

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

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

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

Это было полезно?

Решение

« R» должен работать как для Windows, так и для Mac OS X.

Что-то типа:

std::cout << "will not see this\rwill see this" << std::flush;
std::cout << std::endl; // all done

Другие советы

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

Я почти уверен, что Mac обрабатывает как возврат каретки, так и в линейных каналах, чем * nix & Windows.

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

STD :: Cout интерпретирует « R» как возвращение к началую линии, если вы не будете добавлять «<< endl» каждый раз, используйте " n"

std::cout << "this will work!\nSee... a new line!" << std::endl;

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top