标题:C语言的迷惑 求解
只看楼主
七岁男孩
Rank: 1
等 级:新手上路
帖 子: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
Rank: 3Rank: 3
来 自:北京
等 级:论坛游侠
帖 子:70
专家分:167
注 册:2011-9-8
得分:20 
估计它读的是2遍99 而不是一遍9999

努力对待生活
2011-09-15 16:36
七岁男孩
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2011-6-2
得分:0 
回复 2楼 bhu_wll
经过你的提醒 我反编译了一下它是一次次循环的 每次都读一个九;
 可我又有疑问了;这个数字显然超过了存储范围。它们在内存中又是怎么存储的呢
2011-09-15 16:40
bhu_wll
Rank: 3Rank: 3
来 自:北京
等 级:论坛游侠
帖 子:70
专家分:167
注 册:2011-9-8
得分:0 
这个嘛。。好深奥哦

我也不懂

努力对待生活
2011-09-15 16:42
bhu_wll
Rank: 3Rank: 3
来 自:北京
等 级:论坛游侠
帖 子:70
专家分:167
注 册:2011-9-8
得分:0 
先别急着结贴,大牛们估计知道,再等等

努力对待生活
2011-09-15 16:43
xiaxiayige
Rank: 1
等 级:新手上路
帖 子:16
专家分:7
注 册:2011-9-8
得分:0 
c=getchar();   是输入一个字符串           putchar(c);   是输出一个字符串      你中间什么操作都没有执行,当然输出的还是原来的值  
2011-09-15 16:44
A13433758072
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:广东潮州
等 级:小飞侠
威 望:1
帖 子:1182
专家分:2784
注 册:2010-7-22
得分:0 
你要明白getchar()是怎么运行的,是从哪里读取数据的就知道了

一步一个脚印...............................默默地前进.....
诚邀乐于解答c菜鸟问题,的热心网友加入,  QQ群38490319
2011-09-15 16:45
bhu_wll
Rank: 3Rank: 3
来 自:北京
等 级:论坛游侠
帖 子:70
专家分:167
注 册:2011-9-8
得分:0 
有一种可能 这些字符都是在缓存里呆着呢,一个9占一个字符('9')

当遇到回车时,统一输出呢。

[ 本帖最后由 bhu_wll 于 2011-9-15 16:49 编辑 ]

努力对待生活
2011-09-15 16:47
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
得分:0 
回复 楼主 七岁男孩
没错呀,你写的就是循环,读一个字符写一个字符,你输入多少输出多少。

授人以渔,不授人以鱼。
2011-09-15 16:55
czsbc
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
帖 子:469
专家分:1700
注 册:2008-12-13
得分:0 
输入的字符存放在输入缓冲区里面
while(c!=EOF)
     {
        putchar(c);
        flushall();                //如果这里加一个flushall();清空缓冲区,就只会输出第一个9了。
        c=getchar();
       }
2011-09-15 17:00



参与讨论请移步原网站贴子: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