LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1535|回复: 4

fgets问题

[复制链接]
发表于 2004-9-22 22:15:32 | 显示全部楼层 |阅读模式
fgets(由文件中读取一字符串)

相关函数
open,fread,fscanf,getc

表头文件
include<stdio.h>

定义函数
har * fgets(char * s,int size,FILE * stream);

函数说明
fgets()用来从参数stream所指的文件内读入字符并存到参数s所指的内存空间,直到出现换行字符、读到文件尾或是已读了size-1个字符为止,最后会加上NULL作为字符串结束。

返回值
gets()若成功则返回s指针,返回NULL则表示有错误发生。

范例
#include<stdio.h>
main()
{
char s[80];
fputs(fgets(s,80,stdin),stdout);
}

执行
this is a test /*输入*/
this is a test /*输出*/





这里是函数的说明
  1. typedef char (*ARRAYPTR)[10];
  2. typedef char ARRAY[10];
  3.                                                                                                                  
  4. main(void)
  5. {
  6.   ARRAYPTR ap;
  7.   ARRAY a;
  8.                                                                                                                  
  9.   printf("Input a string : ");
  10.   fgets[color=crimson](a,100,stdin)[/color];
  11.   ap=&a;
  12.   printf("\nECHO : %s\n",ap);
  13. }
复制代码


红色部分怎么理解 ? stdin是什么 ? a我理解为写入的地址,100呢?

为什么我看函数说明看不懂的呢,,以后怎么办 ? 不会用到每个函数就来问一次吧,,给个好的方法我,谢谢你们
发表于 2004-9-23 09:21:50 | 显示全部楼层
学好英语
发表于 2004-9-23 10:41:13 | 显示全部楼层
100就是size,你上面已经写了。stdin是“标准输入”,一般指终端输入(键盘输入)。这一句的意思是从键盘输入一个字符串,这个字符串加上换行符不能超过100个字节,因此实际最多可以输入99个字符。

你看不懂是因为没有真正理解什么是函数?什么是参数?什么是内存空间和指针?C语言的书还要再看一遍,不要太急,一步一步来。
发表于 2004-9-24 16:49:21 | 显示全部楼层
       fgets() reads in at most one less than size characters from stream  and
       stores  them  into  the buffer pointed to by s.  Reading stops after an
       EOF or a newline.  If a newline is read, it is stored into the  buffer.
       A ’\0’ is stored after the last character in the buffer.

实际上,包括换行在内,只能读size-1个字符
发表于 2004-9-24 17:58:21 | 显示全部楼层
sorry,楼上说的没错
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表