关于feof()内在机制探索
笔者之前在写词索引表时,使用如下循环逻辑,结果遇到了文件最后一项重复读入的问题。
查找了feof函数的内在机制
feof判断文件结束是通过读取函数fread/fscanf等返回错误来识别的,故而判断文件是否结束应该是在读取函数之后进行判断。比如,在while循环读取一个文件时,如果是在读取函数之前进行判断,则如果文件最后一行是空白行,可能会造成内存错误。
更改了feof位置,果然成功了。
笔者之前在写词索引表时,使用如下循环逻辑,结果遇到了文件最后一项重复读入的问题。
查找了feof函数的内在机制
feof判断文件结束是通过读取函数fread/fscanf等返回错误来识别的,故而判断文件是否结束应该是在读取函数之后进行判断。比如,在while循环读取一个文件时,如果是在读取函数之前进行判断,则如果文件最后一行是空白行,可能会造成内存错误。
更改了feof位置,果然成功了。