我試圖實現我自己的日誌輪轉(創建新的日誌文件,每當文件大小達到10 MB)。讀取標準輸入,並將其寫入文件的部分是這樣的:作爲日誌輪到我的程序
fstream file("log.txt", ios::out | ios::app);
while (std::cin >> lineInput) {
file << lineInput;
}
但問題是,管道的數據被破壞。標籤和新行總是丟失。因此,舉例來說,如果我的節目的名字是LogRotator
,則命令:
ls | ./LogRotator
只是串接所有的文件名字連在一起,就像這樣:
LogRotatormain.oMakefile
而ls
輸出是:
LogRotator main.o Makefile
我的問題:如何讓標準的流保存所有內容,包括製表符,換行符等等?
您可能會忽略格式化的輸入/輸出並使用讀取/寫入(以及類似的)代替 –