| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 967 人关注过本帖
标题:关于getchar()与EOF的问题(缓存好像无限)。(本人学C没多久)
取消只看楼主 加入收藏
懒惰星
Rank: 1
来 自:江西上饶
等 级:新手上路
帖 子:11
专家分:0
注 册:2011-3-3
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:9 
关于getchar()与EOF的问题(缓存好像无限)。(本人学C没多久)

#include <stdio.h>
main()
{
int c,i,n;
while((c=getchar())!=EOF)
     putchar(c);/* 循环只有这一句*/
getchar();/*为什么吸收不了缓存中的数据?*/
i=getchar();/*本来想输h的*/
n=getchar();/*想输j的,可是好像缓存中有N个-1(EOF)一样前面两个都没吸收掉*/
printf("\nc=%d\ni=%d\nn=%d\n",c,i,n);
}
输入:aaa(ctrl+z)
输出:aaa c=-1  i=-1  n=-1
为什么直接得到i和n等于-1呢?而不等我输入呢?

[ 本帖最后由 懒惰星 于 2011-3-27 12:57 编辑 ]
搜索更多相关主题的帖子: include 
2011-03-27 11:15
懒惰星
Rank: 1
来 自:江西上饶
等 级:新手上路
帖 子:11
专家分:0
注 册:2011-3-3
收藏
得分:0 
各位大侠帮帮我!感激不尽!!先谢啦!

懒惰的我学习C
2011-03-27 11:16
懒惰星
Rank: 1
来 自:江西上饶
等 级:新手上路
帖 子:11
专家分:0
注 册:2011-3-3
收藏
得分:0 
回复 3楼 LSYHEFENG
我是想给i输‘h’,n输‘j’.i和n不在循环中

懒惰的我学习C
2011-03-27 11:46
懒惰星
Rank: 1
来 自:江西上饶
等 级:新手上路
帖 子:11
专家分:0
注 册:2011-3-3
收藏
得分:0 
回复 5楼 LSYHEFENG
再看看

懒惰的我学习C
2011-03-27 12:06
懒惰星
Rank: 1
来 自:江西上饶
等 级:新手上路
帖 子:11
专家分:0
注 册:2011-3-3
收藏
得分:0 
回复 7楼 禾才程
不加回车的话程序就不会动了,要加回车的。你去试试吧!

懒惰的我学习C
2011-03-27 12:27
懒惰星
Rank: 1
来 自:江西上饶
等 级:新手上路
帖 子:11
专家分:0
注 册:2011-3-3
收藏
得分:0 
回复 10楼 ansic
可是为什么我后面两个getchar()直接赋值了而不等我输入东西呢?(此时缓存中好像也没字符了!不过看结果好像有很多-1)

懒惰的我学习C
2011-03-27 12:31
懒惰星
Rank: 1
来 自:江西上饶
等 级:新手上路
帖 子:11
专家分:0
注 册:2011-3-3
收藏
得分:0 
回复 12楼 禾才程
运行的时候没机会输i和n,程序直接结束!

懒惰的我学习C
2011-03-27 12:32
懒惰星
Rank: 1
来 自:江西上饶
等 级:新手上路
帖 子:11
专家分:0
注 册:2011-3-3
收藏
得分:0 
大家快帮忙啊!

懒惰的我学习C
2011-03-27 13:08
懒惰星
Rank: 1
来 自:江西上饶
等 级:新手上路
帖 子:11
专家分:0
注 册:2011-3-3
收藏
得分:0 
怎么没人回答了?

懒惰的我学习C
2011-03-28 15:33
懒惰星
Rank: 1
来 自:江西上饶
等 级:新手上路
帖 子:11
专家分:0
注 册:2011-3-3
收藏
得分:0 
回复 17楼 ansic
文件结尾返回-1给C,可是为啥后面getchar()还没输就结尾了?难道文件结尾后又碰到getchar()不会从新开始?之后的getchar()就没用了?能加我QQ吗?

懒惰的我学习C
2011-03-28 17:51
快速回复:关于getchar()与EOF的问题(缓存好像无限)。(本人学C没多久)
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.023413 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved