鱼C论坛

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

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

[复制链接]
发表于 2016-5-30 15:07:27 | 显示全部楼层 |阅读模式
零基础入门学习C语言封面
《零基础入门学习C语言》
小甲鱼 著
立即购买

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

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

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

查看全部评分

小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2023-11-3 16:42:03 | 显示全部楼层
没看懂
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-9-19 22:10:24 | 显示全部楼层
答案
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2023-7-26 14:51:05 | 显示全部楼层
讲真的,傻子不适合鱼C
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-7-23 09:16:42 | 显示全部楼层
没明白啥意思,以后再看吧
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-12-10 14:01:00 | 显示全部楼层
#include <stdio.h>
...
char *fgets(char *s, int size, FILE *stream);

这里char *fgets   查了后根本不是只能字符型指针,数组字符串第一个地址也完全可以,被误导了写课后作业还在找究竟为什么必须用指针呢,结果一点问题没有。

小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-9-18 15:56:40 | 显示全部楼层
DadingVIP 发表于 2018-7-4 13:26
stdin就是标准输入流,从键盘输入

感谢!
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-8-30 21:24:01 | 显示全部楼层
stdin,,,,,,,,,,,没有评论就看不懂了。。。。。。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-8-11 10:03:07 | 显示全部楼层
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2022-8-4 13:44:03 | 显示全部楼层
stdin是什么
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-7-11 11:41:02 | 显示全部楼层
0. str[3] 用指针法如何表示?
int str[3];
int *pt=&str;
1.假设整型指针变量 p 存放的地址值是 0x11008888,那么请问 p + 1,p + 2,p + 4 和 p + 8 的地址分别是?1. 假设整型指针变量 p 存放的地址值是 0x11008888,那么请问 p + 1,p + 2,p + 4 和 p + 8 的地址分别是?
1.P+1:0x1100888B;
2.P+2:0x11008890;
3.P+4:0x11008894;
4.P+8:0x11008898;
2.请问 str[20] 是否可以写成 20[str]?
不可以;
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-7-9 09:17:22 | 显示全部楼层
EOF它是end of file的缩写,表示"文字流"(stream)的结尾。这里的"文字流",可以是文件(file),也可以是标准输入(stdin)
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2022-6-6 15:15:49 | 显示全部楼层
kkk
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2022-5-23 17:21:51 | 显示全部楼层
读取指定长度数据,可以读入文件中"\n"之前的所有内容,拿捏。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-3-11 21:33:42 | 显示全部楼层
没理解
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-3-4 17:40:01 | 显示全部楼层
.别再他妈的用scanf输入字符串了,这逼遇到空格就直接截断了。请使用高大上的 fgets( ) ok?
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-1-12 10:41:05 | 显示全部楼层
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2021-12-21 15:52:23 From FishC Mobile | 显示全部楼层
课后作业动动手我压根不知道从哪开始,感觉很痛苦,每一节都要花6小时看和分析动动手的答案,一天也就学一节课,进度是不是太慢了,还是我不适合学编程?
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-11-5 09:13:11 | 显示全部楼层
所以之所以能监测到键盘输入都是靠fgets括号内的stdin?可以用其他语句像getch()替换吗?
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-10-18 20:21:11 | 显示全部楼层
感谢评论区
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-10-5 02:54

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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