2010-10-13 57 views
1

將某些內容保存到文本文件中時,是否有辦法不覆蓋文件中的內容?保存到文件有沒有辦法不覆蓋文件中已有的內容?

EX。

blah.txt

這是一個例子

fout << "of saving to a file."; 

我想補充到:「這是一個例子」,「保存到文件」將不覆蓋它。

+1

查看open-call的選項 - th ere應該是一個附加模式。 – 2010-10-13 19:43:06

+0

你必須設置開放模式標誌吃。 – 2010-10-13 19:44:34

回答

5

使用append標誌,就像這樣:

fstream fout("blah.txt", ios::app); 

如果你正在申報後打開它,使用這樣的:

fout.open("blash.txt", fstream::app); 
+0

好的,這正是我一直在尋找的。謝謝! – Zud 2010-10-13 19:48:22

+0

@Alec歡迎:)另外,你可以接受 – 2010-10-13 19:49:39

+0

的計劃。必須等5分鐘 – Zud 2010-10-13 19:51:28

2

你應該爲了打開與相應的寫入模式文件追加給它,而不是覆蓋:

pFile = fopen ("myfile.txt","a"); 

(C style),或

fstream filestr ("myfile.txt", fstream::ate | fstream::out); 

(C++ style)。在後一種情況下,您可能想要使用fstream::app而不是fstream::ate - 這會在每次輸出操作之前將文件指針設置爲文件末尾。

+0

所以,而不是使用fout.open(blah.txt)我應該使用什麼? – Zud 2010-10-13 19:44:29

+0

@Alec,看我的更新。 – 2010-10-13 19:51:00

1

是。您需要打開append mode中的文件。

ofstream fout("blah.txt", fstream::out | fstream::app); 
0

您需要追加模式打開的文件輸出流:

ofstream fout(<path>, ios::app); 
0

您可以手動設置寫入位置,如果你想

u需要: #include <stdio.h> ...

FILE *file = fopen("my_file.txt", "w"); 
fputs ("This is some text." , file); 
fseek (file , 15, SEEK_SET); 
fputs (" sam" ,file); 
fclose (file); 
相關問題