其实说起来很简单,当用fopen打开文件后,在读取和写入之间,要加一句fseek。最简单的就是,例如文件指针是in,那么只要在读取语句和写入语句之间加个fseek(in,0,SEEK_CUR);就可以了。
如果不加这个语句,那么在写入之后再读文件,就不知道读出来的是什么东西了。
因为这个东西好像没什么地方专门介绍过,所以提一下,因为这玩意卡了我一下午。
可能用到本博客的情况有:
原本是只需要读取,用r方式打开文件,然后又需要写入,将打开模式换成r+后,结果写入失败。
或者在写入之后用fgetc来读取字符,结果全部读出-1,而且ftell输出的数值还不变(当然这是fgetc读取失败的问题,可能还有别的原因)