标题:putchar()的怪现象
取消只看楼主
寻乐的狼
Rank: 1
等 级:新手上路
帖 子:118
专家分:0
注 册:2007-2-16
结帖率:100%
 问题点数:0 回复次数:4 
putchar()的怪现象
最近开始重温C,出现“为什么这次就既能输出字母,也能输出数字?在其中也有PUTCHAR(102)的过程”,请看两次代码的不同
/*
#include<stdio.h>
#include<stdlib.h>
int main(void)
{
    putchar(102);     //输出字母f
    system("pause");
    return 0;
}
*/
//如果用while连续输出,其中也有7,那将怎样呢
#include<stdio.h>
#include<stdlib.h>
#define MAX 50
int main(void)
{
    char ch;
    while((ch=getchar())!='#')
    putchar(ch);              //为什么这次就既能输出字母,也能输出数字?在其中也有PUTCHAR(102)的过程
    system("pause");
    return 0;
}
// 开始思考:getchar()是一个行缓冲函数,而while语句表明每次都PUTCHAR(一个字符),
//那么他应该输出的是ASCII码中对应的字母, 难道缓冲只原样输出?
搜索更多相关主题的帖子: putchar include 现象 void int 
2008-01-07 00:27
寻乐的狼
Rank: 1
等 级:新手上路
帖 子:118
专家分:0
注 册:2007-2-16
得分:0 
是啊,这两个的基本过程是一样的,只是第二个做了几次重复的这个动作,那为何输出就不同了呢

用C打破禁锢的世界
2008-01-07 01:05
寻乐的狼
Rank: 1
等 级:新手上路
帖 子:118
专家分:0
注 册:2007-2-16
得分:0 
是这样,可是当我打入数字4,对应ASCII码应该是个方片,可是它还是输出数字

用C打破禁锢的世界
2008-01-07 01:19
寻乐的狼
Rank: 1
等 级:新手上路
帖 子:118
专家分:0
注 册:2007-2-16
得分:0 
原帖由 [bold][underline]xianshizhe111[/underline][/bold] 于 2008-1-7 01:36 发表 [url=http://bbs.][/url]
这跟getchar 有关
如果:用 getchar 是按ASLII 的顺序输出
   不用 getchar 是按控制字符的顺序输出
   你试试看.

不太懂,能否用实例解释下

用C打破禁锢的世界
2008-01-07 11:21
寻乐的狼
Rank: 1
等 级:新手上路
帖 子:118
专家分:0
注 册:2007-2-16
得分:0 
恩,谢谢,使用getchar()确实是会原样输出的。但是当之用PUTCHAR()时,会按照ASCII码转换为字符。你这个例子真的很好

[[italic] 本帖最后由 寻乐的狼 于 2008-1-7 12:21 编辑 [/italic]]

用C打破禁锢的世界
2008-01-07 12:17



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-196212-1-1.html




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

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