b2科目四模拟试题多少题驾考考爆了怎么补救
b2科目四模拟试题多少题 驾考考爆了怎么补救

使用fgets函数读文件时最后一行会重复问题

电脑杂谈  发布时间:2019-07-14 16:13:46  来源:网络整理

fgets 每次读取一行_fgets读取一行_fgets读取多行

使用fgets函数读文件时最后一行会重复问题

——lvyilong316

在使用fgets函数读文件时发现每次最后一行都会重复读一遍,程序如下:

#include

#include

intmain()

{

FILE*fp;

charch[128];

fp=fopen("a.txt","r");

while(!feof(fp))

{

fgets 每次读取一行_fgets读取一行_fgets读取多行

fgets((char*)ch,sizeof(ch)-1,fp);

printf("%s",ch);

}

fclose(fp);

}

其中a.txt文件内容如图1所示。

图1

运行程序结果如图2所示。

图2

要想知道为什么最后一行会重复输出,需要知道以下两点:

fgets读取多行_fgets 每次读取一行_fgets读取一行

lfeof()只有在你尝试读取文件结尾之后,才会返回true。也就是说,feof()只解释上次文件读写是否到达结尾,而不是下一次。

lfgets()每次读一行,也就是直到读到换行符或者文件结尾才返回,注意如果有换行符,fgets()会连同换行符读入。

下面分析一下上面程序的执行过程:

(1)判断是否读到了文件结尾(否);

(2)读取一行”aaaaaaaaaaaaaaaaaaaa\n”,输出;

(3)判断是否读到了文件结尾(否);

(4)读取一行”bbbbbbbbbbbbbbbbbb\n”fgets读取一行,输出;

(5)判断是否读到了文件结尾(否);

(6)读到了文件结尾返回,注意本次没用从文件中读到任何东西,所以字符串ch中保存的还是原来第(4)步读到的内容。所以又将”bbbbbbbbbbbbbbbbbb\n”再次输出。

(7)判断是否读到了文件结尾(是);

(8)结束循环。

如果将a.txt的内容换做图3所示,即第二行后没有回车。

fgets读取多行_fgets读取一行_fgets 每次读取一行

图3

再次运行程序输出如图4:

图4

过程分析:

(1)判断是否读到了文件结尾(否);

(2)读取一行”aaaaaaaaaaaaaaaaaaaa\n”,输出;

(3)判断是否读到了文件结尾(否);

说白了就是:当你的文件指针已经读取到最后了,但是feof还是会返回没有到文件的末尾,你再去读一次,读到了一次空的数据,这时用feof判断才会真正的返回非0值,表示文件到达文件尾了。程序先创建一个文件,写入4个类型的数据,然 后把读/写指针定位到文件开头逐个读取并输出当前指针的位置fgets读取一行, 如果到了文件结尾则提示已经到达文件结尾,重新定位文件到开头并读取一个字符串。arcview gis有工具来读取cad文件作为有效的gis数据源,这些工具直接读一个cad文件到磁盘。

(5)判断是否读到了文件结尾(是);

(6)结束循环。

fgets读取多行_fgets读取一行_fgets 每次读取一行

l补充:

1.使用vim编辑文件保存时会默认在末尾添加一个换行符。如何如图5所示在vim输入数据。

图5

使用editplus打开情况如图6所示:

图6

文件使用方式意义“rt”只读打开一个文本文件,只允许读数据“wt”只写打开或建立一个文本文件,只允许写数据“at”追加打开一个文本文件,并在文件末尾写数据“rb”只读打开一个二进制文件,只允许读数据“wb”只写打开或建立一个二进制文件,只允许写数据“ab”追加打开一个二进制文件,并在文件末尾写数据“rt+。360杀毒软件添加信任白名单: 1.找到360杀毒图标,双击打开"360杀毒",点击右上角的"设置"按钮,如图1所示 图1 2.在"360杀毒-设置"界面中点击"文件白名单",如图2所示 图2 3.在弹出来的窗口中点击"添加文件"按钮,如图3所示 图3 4.选择要添加的软件双击,然后点击"打开",如图4所示 图4 5.在"文价内容发生变化后此白名单失效"前面把勾去掉,。dr.sms使用十分简单,打开drsmsver6.exe,点击add添加游戏rom(这里默认是添加后缀名为.sms的rom文件,如果想添加.gg/.sc/.sg后缀的文件,可以直接把文件拖进转换列表里,或者把打开信息框中的文件类型选为all files),然后点击broese...确定生成的rom存放路径及名称,最后点击create gba rom就可以直接生成了。

图7

使用editplus打开b.txt如图8。

图8

同样在结尾添加了一个换行。


本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-112959-1.html

    相关阅读
      发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

      热点图片
      拼命载入中...