我有一個日誌記錄功能,在這裏我有日誌文件。現在,每次運行程序時,我都希望先前寫入的文件不應該被刪除,並且應該附加當前數據(日誌文件中的任何內容)在C++的文件(日誌文件)中追加新行
只是爲了說明問題:我有日誌文件logging_20120409.log,它每天保持時間戳。假設我運行我的項目它寫入當前時間戳。現在,如果我重新運行它,則先前的時間戳將被替換。我不想要這個功能。我想要以前的時間標記和當前的時間標記。
請幫忙
我有一個日誌記錄功能,在這裏我有日誌文件。現在,每次運行程序時,我都希望先前寫入的文件不應該被刪除,並且應該附加當前數據(日誌文件中的任何內容)在C++的文件(日誌文件)中追加新行
只是爲了說明問題:我有日誌文件logging_20120409.log,它每天保持時間戳。假設我運行我的項目它寫入當前時間戳。現在,如果我重新運行它,則先前的時間戳將被替換。我不想要這個功能。我想要以前的時間標記和當前的時間標記。
請幫忙
您希望以「附加」模式打開文件,因此它不會刪除文件的以前的內容。你這樣做,通過指定ios_base::app
當你打開文件:
std::ofstream log("logfile.txt", std::ios_base::app | std::ios_base::out);
例如,每次運行這個時候,就會多一個行添加到文件:
#include <ios>
#include <fstream>
int main(){
std::ofstream log("logfile.txt", std::ios_base::app | std::ios_base::out);
log << "line\n";
return 0;
}
所以,第一次你運行它,你就會得到
line
第二次:
line
line
等等。
可以你知道它做了什麼? – gandhigcpp 2012-04-09 09:19:52
也許您需要使用append選項打開文件。像這樣:
FILE * pFile;
pFile = fopen ("myfile.txt","a");
或本:
fstream filestr;
filestr.open ("test.txt", fstream::app)
請問如何建議.. – gandhigcpp 2012-04-09 09:12:18
不知道我還有什麼建議。你目前如何打開文件? – WeaselFox 2012-04-09 09:14:35
萬一我有這樣的東西: - file.open(logfileName.c_str());和文件是ofstream的一個對象。 – gandhigcpp 2012-04-09 09:14:39
使用類似:
#include <fstream>
#include <iostream>
using namespace std;
int main() {
ofstream out("try.txt", ios::app);
out << "Hello, world!\n";
return 0;
}
iOS的:應用程序選項可以使輸出中獲得附加到文件末尾,而不是刪除的其內容。
你需要共享你的代碼到日誌文件被打開所在的位置以及它被創建。 – Vijay 2012-04-09 09:12:16
在'append模式下打開文件' – 2012-04-09 09:44:30