鱼C论坛

 找回密码
 立即注册
查看: 1549|回复: 6

[已解决]fgets函数

[复制链接]
发表于 2021-5-28 19:16:15 | 显示全部楼层 |阅读模式

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

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

x
屏幕截图 2021-05-28 191347.png
括号里的最后一个参数应该怎么填
最佳答案
2021-5-28 20:18:50

没看小甲鱼c语言吗   
file是type命的别名   
首先理解流的意思,可以想象水从水管里出来,这就是一股水流。
然后,c语言中流动的不再是水,而是有顺序的,有排列结构的数据。比如100001111100001(二进制)
C里的文件流,C里标准文件方式把文件当作流来看,也就是有一个内部缓冲buffer(在C库内部建立,一般为512B),每次以标准方式打开文件时,读入时先将数据读到这个缓冲区里,写的时候也是先写入缓冲区里。
C里标准输入就是stdin,标准输出就是stdout,C对键盘输入(比如scanf)和屏幕输出(比如printf)的行缓冲机制就是建立在这些文件的流机制上的。
再具体我就知道到了

第一个参数指向的地址就是用来存放 从流读取的数据的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-5-28 19:31:49 | 显示全部楼层
比如:stdin
因为他说:该参数是一个FILE对象的指针,指定一个代操作的数据流
而stdin是:输入流s即输入缓冲区中读取字符
例如:
    char str[20];  
    printf("请输入一个字符串:");
    fgets(str, 7, stdin);  /*从输入流stdin即输入缓冲区中读取7个字符到字符数组str中*/
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-5-28 19:36:05 | 显示全部楼层
gets不会检查读取长度 可能会越界  
fgets  从最后一个参数位置读取size个 到第一个参数(指针,地址中
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-5-28 19:37:21 | 显示全部楼层
肖-肖 发表于 2021-5-28 19:31
比如:stdin
因为他说:该参数是一个FILE对象的指针,指定一个代操作的数据流
而stdin是:输入流s即输入缓冲 ...

还有别的吗
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-5-28 19:44:14 | 显示全部楼层
万千只cnm 发表于 2021-5-28 19:36
gets不会检查读取长度 可能会越界  
fgets  从最后一个参数位置读取size个 到第一个参数(指针,地址中

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

使用道具 举报

发表于 2021-5-28 19:55:54 | 显示全部楼层

应该就这个,stdout虽然也是数据流但是是输出流
这个要读取,所以用stdin
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-5-28 20:18:50 | 显示全部楼层    本楼为最佳答案   

没看小甲鱼c语言吗   
file是type命的别名   
首先理解流的意思,可以想象水从水管里出来,这就是一股水流。
然后,c语言中流动的不再是水,而是有顺序的,有排列结构的数据。比如100001111100001(二进制)
C里的文件流,C里标准文件方式把文件当作流来看,也就是有一个内部缓冲buffer(在C库内部建立,一般为512B),每次以标准方式打开文件时,读入时先将数据读到这个缓冲区里,写的时候也是先写入缓冲区里。
C里标准输入就是stdin,标准输出就是stdout,C对键盘输入(比如scanf)和屏幕输出(比如printf)的行缓冲机制就是建立在这些文件的流机制上的。
再具体我就知道到了

第一个参数指向的地址就是用来存放 从流读取的数据的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-14 14:46

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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