Я пытаюсь реализовать свой собственный логарифмический ротатор (создайте новый файл журнала всякий раз, когда размер файла достигает 10 МБ). Та часть, которая читает стандартный ввод и записывает его в файл заключается в следующем:Труба в мою программу как логарифмический ротатор
fstream file("log.txt", ios::out | ios::app);
while (std::cin >> lineInput) {
file << lineInput;
}
Но проблема в том, что водопроводные данные получают разрушены. Вкладки и новые строки всегда теряются. Так, например, если имя моей программы является LogRotator
, то команда:
ls | ./LogRotator
Просто объединяющее все имена файлов вместе, как это:
LogRotatormain.oMakefile
в то время как выход ls
является:
LogRotator main.o Makefile
Мой вопрос: Как я могу сделать стандартное потоковое сохранение всего, включая вкладки, символы новой строки , и т.д.?
Вы можете пропускаются отформатирован ввода/вывода и использовать для чтения/записи (и подобное) вместо –