2014-06-15 27 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