您的位置:首页 > 其它

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

2012-03-27 16:38 330 查看
一、原型是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)时,没有提示要输入数据了,原因很简单:回车以作为第二次调用结果输入进去,这样下次程序肯定出问题了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: