我正在使用fwrite
功能。我有一个有4K的文件。我想改变地方3500的字段。
我确实去了这个地方(3500)我也在ftell
得到它告诉我,我在3500。
我这样做:
char[8] a;
File* f; //is opened with a+ mode
int n = fwrite(a, 1, 8, f);
然后当我打开文件时,缓冲区a中的数据被设置为文件的末尾。 为什么?如何改变?
答案 0 :(得分:1)
因为您使用" a +"打开了文件,所以您写入文件的任何内容都将始终位于文件的末尾,而不管其他地方是什么。 " a"表示您以附加模式打开文件。使用" r +"而不是模式。