鱼C论坛

 找回密码
 立即注册
查看: 35829|回复: 62

[函数快查] fgets -- 从指定文件中读取字符串

[复制链接]
发表于 2016-5-30 15:07:27 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
fgets 函数文档


函数概要:

fgets 函数用于从指定文件中读取字符串。

fgets 函数最多可以读取 size - 1 个字符,因为结尾处会自动添加一个字符串结束符 '\0'。当读取到换行符('\n')或文件结束符(EOF)时,表示结束读取('\n' 会被作为一个合法的字符读取)。


函数原型:

  1. #include <stdio.h>
  2. ...
  3. char *fgets(char *s, int size, FILE *stream);
复制代码


参数解析:

参数 含义
s 字符型指针,指向用于存放读取字符串的位置
size 指定读取的字符数(包括最后自动添加的 '\0')
stream 该参数是一个 FILE 对象的指针,指定一个待操作的数据流


返回值:

1. 如果函数调用成功,返回 s 参数指向的地址。

2. 如果在读取字符的过程中遇到 EOF,则 eof 指示器被设置;如果还没读入任何字符就遇到这种 EOF,则 s 参数指向的位置保持原来的内容,函数返回 NULL。

3. 如果在读取的过程中发生错误,则 error 指示器被设置,函数返回 NULL,但 s 参数指向的内容可能被改变。


演示:

  1. #include <stdio.h>

  2. #define MAX 1024

  3. int main()
  4. {
  5.         char str[MAX];

  6.         printf("请输入一个字符串:");
  7.         fgets(str, MAX, stdin);

  8.         printf("您输入的内容是:%s", str);

  9.         return 0;
  10. }
复制代码

demo.png

版权归鱼C工作室(www.fishc.com)所有,转载请注明来源!


评分

参与人数 5荣誉 +16 鱼币 +15 贡献 +6 收起 理由
jintu + 5 有一点没看懂其实
小冥冥 + 5 + 5 + 3 这个函数实在是太实用了,听君一席话胜读十.
15579618832 + 5 + 3
希望yjsks顺利 + 1 说实话还没看懂呀
八个核桃罒 + 5 + 5

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2017-2-15 21:31:23 | 显示全部楼层
get it
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 2 反对 0

使用道具 举报

发表于 2017-4-4 08:56:00 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2017-9-26 19:29:41 | 显示全部楼层
为什么我看完一脸懵。。。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 5 反对 0

使用道具 举报

发表于 2017-10-30 18:43:21 | 显示全部楼层
stream不懂
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 6 反对 0

使用道具 举报

发表于 2017-12-11 13:17:55 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-3-12 21:24:02 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-3-22 23:30:16 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-7-4 13:07:48 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-7-4 13:26:46 | 显示全部楼层
stdin就是标准输入流,从键盘输入

评分

参与人数 6荣誉 +8 鱼币 +9 贡献 +7 收起 理由
豆嘉木 + 1 + 2 太感谢了!!正在疑惑呢
resilel + 1 + 1 + 1 无条件支持楼主!
lingoo1980 + 1 + 1 + 1 感谢
maxwwyy + 1 + 1 + 1 感谢
zlatan + 1 + 1 + 1
Xlyxcar + 3 + 3 + 3 感谢,正搞不懂呢

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 37 反对 0

使用道具 举报

发表于 2019-1-8 21:20:13 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2019-2-10 18:03:32 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2019-3-15 18:12:29 From FishC Mobile | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2019-6-19 10:11:02 | 显示全部楼层
好东西,支持
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-7-26 10:51:44 | 显示全部楼层
  1. #include <stdio.h>

  2. #define MAX 256

  3. int main(){
  4.         char str[MAX], *p = str;
  5.         int count;

  6.         printf("Write something:");
  7.         fgets(p, MAX, stdin);

  8.         while(*p++!='\n'){
  9.                 count++;
  10.         }

  11.         printf("You have written %d characters!\n", count);
  12.         return 0;
  13. }
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 4 反对 0

使用道具 举报

发表于 2019-8-1 13:44:02 | 显示全部楼层
stdin是标准输入,一般指键盘输入到缓冲区里的东西
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 8 反对 0

使用道具 举报

发表于 2019-8-16 10:20:50 | 显示全部楼层
没怎么看懂
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2019-8-28 21:48:01 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2019-10-25 15:40:46 | 显示全部楼层
多谢评论区的解释!!!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-11-15 09:29:20 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-3-29 08:03

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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