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)时,没有提示要输入数据了,原因很简单:回车以作为第二次调用结果输入进去,这样下次程序肯定出问题了。
作用是从流中读取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)时,没有提示要输入数据了,原因很简单:回车以作为第二次调用结果输入进去,这样下次程序肯定出问题了。
相关文章推荐
- 在VC中使用资源文件应该注意的问题
- 有关STL使用上的一些注意事项。关于某些函数的参数问题。
- Android高手进阶教程(十九)之---Android开发中,使用线程应该注意的问题!
- ssh 使用时应该注意的问题
- SQL中distinct与order by联合使用应该注意的问题
- fgets函数使用注意事项
- Qt之使用openUrl打开文件时应该注意的问题
- 使用梅花雨日历控件应该注意的问题
- vector 容器使用时应该注意的内存分配问题
- 实例解析使用指针作为函数参数传递需要注意的问题
- 在Myeclipse中开发web项目时,servlet的创建和使用中应该注意的问题。
- 关于使用UniForm以其他控件为Parent时应该注意的问题
- 3G使用技巧及应该注意的问题
- 实例讲解Python的函数闭包使用中应注意的问题
- 使用scanf()函数应注意的问题??
- 在MySQL中使用通配符时应该注意的问题
- php的crc32函数使用时需要注意的问题(不然就是坑)
- Android高手进阶教程(十九)之---Android开发中,使用线程应该注意的问题!
- 在jsf中使用tiles时应该注意的问题
- WebApplication中使用Profile应该注意的问题