2014-06-15 29 views
0

我正在使用fwrite函數。我有一個4K文件。我想改變的地方現場3500
我做FSEEK的地方(3500),我也得到它ftell,告訴我,我在3500 我做的:fwrite函數表現出意外

char[8] a; 
File* f; //is opened with a+ mode  
int n = fwrite(a, 1, 8, f);  

然後當我打開文件時,來自緩衝區a的數據被設置爲文件的結尾。 爲什麼?如何改變它?

回答

1

因爲您使用「a +」打開文件,所以您寫入文件的任何內容都將始終放在文件的末尾,而不管在哪裏尋找。 「a」表示您以附加模式打開文件。改爲使用「r +」作爲模式。

+0

好的,謝謝,我使用了+確保文件如果不存在將是。我可以使用別的東西嗎? –

+0

不幸的不是。你必須用「r +」打開這個文件,如果失敗了,請用「w +」打開它。 – nos