您的位置:老铁SEO > 站长新闻 > 网站交易 >

fgets,fgets()无法从txt文件里读出数据

文章来源:http://www.6cu.com

作者:软文外链代发

人气:14

2021-03-22 20:26:03

     一、问题

     源程序的目的是把cpp.txt文件里的内容一行一行的读出,并打印输出,但是一行也没有被读出来。

     源程序如下:

     二、问题解决

     首先,排除光标不在txt文件末尾的问题,因为无论光标在哪,fopen函数会自动把文件读指针放在文件开头。

     其次,函数没有用错,函数的参数也没有用错。

     错在对字符串的定义方式上,就是这一句

     char *s;

     虽然char s[51]和 char *s这两种字符串的定义方式在本质上都是一样的(编译器都当做字符数组处理,因为C语言没有字符串这种变量),但是区别在于一个规定了字符串长度,一个没规定长度。

     而fgets函数中要求第二个参数给出一次读取的字符个数:

     fgets(s,50,f)

     所以只能使用char s[51]这一种定义方式。并且定义时要注意,字符串长度要比fgets(s,50,f)里的第二个参数多一位,用来存放‘/0’。

     正确程序:

     原文链接:https://blog.csdn.net/qq_44886213/article/details/109506623


相关文章

在线客服

外链咨询

扫码加我微信

微信:juxia_com

返回顶部