fwrite函数表现出意外

时间:2014-06-15 11:27:38

标签: fwrite

我正在使用fwrite功能。我有一个有4K的文件。我想改变地方3500的字段。
我确实去了这个地方(3500)我也在ftell得到它告诉我,我在3500。 我这样做:

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

然后当我打开文件时,缓冲区a中的数据被设置为文件的末尾。 为什么?如何改变?

1 个答案:

答案 0 :(得分:1)

因为您使用" a +"打开了文件,所以您写入文件的任何内容都将始终位于文件的末尾,而不管其他地方是什么。 " a"表示您以附加模式打开文件。使用" r +"而不是模式。