|
网站首页
|
业界新闻
|
小组
|
威客
|
人才
|
下载频道
|
博客
|
代码贴
|
在线编程
|
编程论坛
|
登录
注册
短消息
我发表的主题
我参与的主题
我收藏的贴子
我上传的附件
我下过的附件
编辑个人资料
我的博客
用户控制面板
搜索
道具
恢复默认风格
碧海青天
秋意盎然
棕红预览
粉色回忆
蓝雅绿
紫色淡雅
青青河草
e点小镇
橘子红了
红红夜思
水晶紫色
雪花飘飘
新年快乐
风格
短消息
论坛展区
帮助
编程论坛
→
开发语言
→
『 C语言论坛 』
→ C语言的迷惑 求解
我的收件箱(0)
欢迎加入我们,一同切磋技术
用户名:
密 码:
共有
687
人关注过本帖
标题:
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
快速回复:
C语言的迷惑 求解
数据加载中...
关于我们
|
广告合作
|
编程中国
|
清除Cookies
|
TOP
|
手机版
编程中国
版权所有,并保留所有权利。
Powered by
Discuz
, Processed in 0.040246 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved