当我们用while(!feof(fp)){...}判断文件是否结束,并处理文件内容的时候经常会遇到文件最后一行重复两遍的问题,这是因为feof在遇到文件结束符EOF这个位置时,返回的还是0;而到下一个位置时才返回1,这时while循环才退出。所以单纯用上面的while循环判断会出现重复的现象。
解决办法是,读的时候检查是否到达了文件尾部,如
while (fread(……), !feof(……))
{
...
}
当我们用while(!feof(fp)){...}判断文件是否结束,并处理文件内容的时候经常会遇到文件最后一行重复两遍的问题,这是因为feof在遇到文件结束符EOF这个位置时,返回的还是0;而到下一个位置时才返回1,这时while循环才退出。所以单纯用上面的while循环判断会出现重复的现象。
解决办法是,读的时候检查是否到达了文件尾部,如
while (fread(……), !feof(……))
{
...
}