关于C语言fgets函数要注意的地方
- fgets函数一般用来读入文件内容,每次读一行,然后存入缓存区
- 有人问那怎么读下一行,直至读完整个文本文件的内容,其实很简单,只要循环用fgets就行,如果你这次把第一行读完了,那么下一次文件指针就会从第二行的开头开始,下次用fgets就会从第二行开始读啦!
- 值得一提的是,当fgets函数读完一行,会自动添加一个反斜杠0,即 ‘\0’
- fgets函数的第一个参数表示文件读入之后存储的地方也就是缓存区,一般是一个数组,中间的参数表示你要一次读入多大的内容,第三个参数表示文件fp,在这之前要先打开文件,就是fp=fopen()之类的格式
- fgets函数停止的条件可能有两个,第一个是遇到了反斜杠n,表示这一行结束了,第二个就是读入的字符数量已经到达了(中间参数-1),为什么减一是因为最后要留一个位置给 \0(第3点已经说明)
- 当fgets执行一次但一行的字符还没有读完时,下一次会接着读那一行,直到遇到第5点说的两种结束条件
- 如果是把文件内容读入数组缓存区,第二次会覆盖第一次相对应位置的内容,因为每次都是从数组的开始地址存储文件内容,所以如果是用指针控制数组内容的提取(把内容写到另一个文件之类的),每次fgets之后数组指针都要置零,否则就会出现下一行前面的一些字符读不进来或者所有字符都没读到直接读到了反斜杠0(具体读到了什么可以debug追踪一下相应的变量)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)