搜索
编程论坛
→
开发语言
→
『 C语言论坛 』
→ C语言的迷惑 求解
标题:
C语言的迷惑 求解
只看楼主
七岁男孩
等 级:
新手上路
帖 子:7
专家分:0
注 册:2011-6-2
结帖率:
100%
楼主
已结贴
√
问题点数:20 回复次数:16
C语言的迷惑 求解
#include<stdio.h>
void main()
{
int c;
c=getchar();
while(c!=EOF)
{
putchar(c);
c=getchar();
}
}
char类型的数据占据一个字符 也就是八位 转换成十进制最大的数字是255, 可这个程序执行的时候 我输入9999,这个程序还是可以准确输出9999,我不到为什么,请大家给点见解 ,
搜索更多相关主题的帖子:
while
最大的
十进制
C语言
2011-09-15 16:25
bhu_wll
来 自:北京
等 级:
论坛游侠
帖 子:70
专家分:167
注 册:2011-9-8
第
2
楼
得分:20
估计它读的是2遍99 而不是一遍9999
努力对待生活
2011-09-15 16:36
七岁男孩
等 级:
新手上路
帖 子:7
专家分:0
注 册:2011-6-2
第
3
楼
得分:0
回复 2楼 bhu_wll
经过你的提醒 我反编译了一下它是一次次循环的 每次都读一个九;
可我又有疑问了;这个数字显然超过了存储范围。它们在内存中又是怎么存储的呢
2011-09-15 16:40
bhu_wll
来 自:北京
等 级:
论坛游侠
帖 子:70
专家分:167
注 册:2011-9-8
第
4
楼
得分:0
这个嘛。。好深奥哦
我也不懂
努力对待生活
2011-09-15 16:42
bhu_wll
来 自:北京
等 级:
论坛游侠
帖 子:70
专家分:167
注 册:2011-9-8
第
5
楼
得分:0
先别急着结贴,大牛们估计知道,再等等
努力对待生活
2011-09-15 16:43
xiaxiayige
等 级:
新手上路
帖 子:16
专家分:7
注 册:2011-9-8
第
6
楼
得分:0
c=getchar(); 是输入一个字符串 putchar(c); 是输出一个字符串 你中间什么操作都没有执行,当然输出的还是原来的值
2011-09-15 16:44
A13433758072
来 自:广东潮州
等 级:
小飞侠
威 望:
1
帖 子:1182
专家分:2784
注 册:2010-7-22
第
7
楼
得分:0
你要明白getchar()是怎么运行的,是从哪里读取数据的就知道了
一步一个脚印...............................默默地前进.....
诚邀乐于解答c菜鸟问题,的热心网友加入, QQ群38490319
2011-09-15 16:45
bhu_wll
来 自:北京
等 级:
论坛游侠
帖 子:70
专家分:167
注 册:2011-9-8
第
8
楼
得分:0
有一种可能 这些字符都是在缓存里呆着呢,一个9占一个字符('9')
当遇到回车时,统一输出呢。
[
本帖最后由 bhu_wll 于 2011-9-15 16:49 编辑
]
努力对待生活
2011-09-15 16:47
TonyDeng
等 级:
贵宾
威 望:
304
帖 子:25859
专家分:48889
注 册:2011-6-22
第
9
楼
得分:0
回复 楼主 七岁男孩
没错呀,你写的就是循环,读一个字符写一个字符,你输入多少输出多少。
授人以渔,不授人以鱼。
2011-09-15 16:55
czsbc
等 级:
青峰侠
帖 子:469
专家分:1700
注 册:2008-12-13
第
10
楼
得分:0
输入的字符存放在输入缓冲区里面
while(c!=EOF)
{
putchar(c);
flushall(); //如果这里加一个flushall();清空缓冲区,就只会输出第一个9了。
c=getchar();
}
2011-09-15 17:00
17
1/2页
1
2
参与讨论请移步原网站贴子:
https://bbs.bccn.net/thread-349982-1-1.html
关于我们
|
广告合作
|
编程中国
|
清除Cookies
|
TOP
|
手机版
编程中国
版权所有,并保留所有权利。
Powered by
Discuz
, Processed in 0.184769 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved