|
网站首页
|
业界新闻
|
小组
|
威客
|
人才
|
下载频道
|
博客
|
代码贴
|
在线编程
|
编程论坛
|
登录
注册
短消息
我发表的主题
我参与的主题
我收藏的贴子
我上传的附件
我下过的附件
编辑个人资料
我的博客
用户控制面板
搜索
道具
恢复默认风格
碧海青天
秋意盎然
棕红预览
粉色回忆
蓝雅绿
紫色淡雅
青青河草
e点小镇
橘子红了
红红夜思
水晶紫色
雪花飘飘
新年快乐
风格
短消息
论坛展区
帮助
编程论坛
→
开发语言
→
『 C语言论坛 』
→ fgets疑惑
我的收件箱(0)
欢迎加入我们,一同切磋技术
用户名:
密 码:
共有
420
人关注过本帖
标题:
fgets疑惑
只看楼主
加入收藏
han1115
等 级:
论坛游民
帖 子:15
专家分:20
注 册:2012-8-11
结帖率:
66.67%
楼主
收藏
已结贴
√
问题点数:20 回复次数:8
fgets疑惑
程序代码:
#include
<stdio.h>
int
main(
void
) {
char
a[
10
];
while
(fgets(a,
10
,stdin)) fputs(a,stdout);
return
0
; }
为啥输入长度超过10的限制,fputs为啥能全部显示,定义数组不就没意思了么?求解 搞不明白啊
2012-11-30 16:02
举报帖子
使用道具
赠送鲜花
Fisher~
等 级:
业余侠客
帖 子:93
专家分:222
注 册:2012-11-10
第
2
楼
收藏
得分:7
fgets()函数原型为
char *fgets(char *str,int n,FILE *fp)
功能:在文件指针fp所指文件位置读取n个字符并放入str字符数组中,读不到则返回Null
所以不是fgets()函数限制而是你定义的存储空间最大为10 限制了读取
2012-11-30 16:18
举报帖子
使用道具
赠送鲜花
han1115
等 级:
论坛游民
帖 子:15
专家分:20
注 册:2012-8-11
第
3
楼
收藏
得分:0
输入0123456789十个数,按照fgets函数定义的应该读入数组中的数是012345678\n.
为什么fputs能输出0123456789\n呢?
真心不明白啥情况,定义看过好几遍了,没发现理解的那里不对啊
2012-11-30 16:26
举报帖子
使用道具
赠送鲜花
han1115
等 级:
论坛游民
帖 子:15
专家分:20
注 册:2012-8-11
第
4
楼
收藏
得分:0
也就是我输入超过10个多少个字符,fputs也回显多少个字符。
2012-11-30 16:28
举报帖子
使用道具
赠送鲜花
jk_love
等 级:
蝙蝠侠
威 望:
1
帖 子:196
专家分:965
注 册:2012-10-22
第
5
楼
收藏
得分:7
输入大于10的话,会被a循环存储,实际a的长度没有变化
2012-11-30 16:28
举报帖子
使用道具
赠送鲜花
天剑山
等 级:
业余侠客
威 望:
3
帖 子:119
专家分:266
注 册:2012-8-3
第
6
楼
收藏
得分:7
理论上fgetc会忽略换行符这类特殊字符
2012-11-30 16:31
举报帖子
使用道具
赠送鲜花
jk_love
等 级:
蝙蝠侠
威 望:
1
帖 子:196
专家分:965
注 册:2012-10-22
第
7
楼
收藏
得分:0
楼主如果去掉 while 试一下,就很明了了
fputs也只能显示10个,数组只会存储10个字符的东西~
2012-11-30 16:32
举报帖子
使用道具
赠送鲜花
han1115
等 级:
论坛游民
帖 子:15
专家分:20
注 册:2012-8-11
第
8
楼
收藏
得分:0
谢谢各位了,忘了最基本的流了 。
2012-11-30 16:45
举报帖子
使用道具
赠送鲜花
ren613
来 自:宣武
等 级:
论坛游侠
帖 子:117
专家分:120
注 册:2012-11-20
第
9
楼
收藏
得分:0
天道酬勤
2012-11-30 17:56
举报帖子
使用道具
赠送鲜花
9
1/1页
1
快速回复:
fgets疑惑
数据加载中...
关于我们
|
广告合作
|
编程中国
|
清除Cookies
|
TOP
|
手机版
编程中国
版权所有,并保留所有权利。
Powered by
Discuz
, Processed in 0.039230 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved