fgets函数使用时应该注意的问题

一、原型是char *fgets(char *s, int n, FILE *stream);  作用是从流中读取n-1个字符,除非读完一行,参数s是来接收字符串,如果成功则返回s的指针,否则返回NULL。  

  形参注释:*s结果数据的首地址;n-1:一次读入数据块的长度,其默认值为1k,即1024;stream是文件指针
  例:如果一个文件的当前位置的文本如下
  Love ,I Have
  但是,如果用 
  fgets(str1,4,file1);
  则执行后str1="Lov",读取了4-1=3个字符,
  而如果用 
  fgets(str1,23,file1);

  则执行str1="Love ,I Have",读取了一行(包括行尾的'\n',并自动加上字符串结束符'\0')。

 

二、fgets函数使用指针需要分配内存,或者使用数组。

 

三、用fgets(str,3,stdin)从屏幕读取数据时,比如屏幕输入:MSG 回车

第二次调用fgets(str,3,stdin)时,没有提示要输入数据了,原因很简单:回车以作为第二次调用结果输入进去,这样下次程序肯定出问题了。

阅读更多
文章标签: stream file null
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

不良信息举报

fgets函数使用时应该注意的问题

最多只允许输入30个字

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭