| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 642 人关注过本帖
标题:关于putchar()和getchar()两个函数的问题。
只看楼主 加入收藏
John0826
Rank: 1
等 级:新手上路
帖 子:15
专家分:8
注 册:2014-2-19
结帖率:100%
收藏
已结贴  问题点数:5 回复次数:8 
关于putchar()和getchar()两个函数的问题。
#include <stdio.h>
int main(void)
{
    char ch;
    while((ch=getchar())!=EOF)
    {
        putchar(ch);
    }
    return 0;
}
关于这两个函数,我不理解为什么从控制台输入中文它也能给你原样输出来,ch不是只占据了一个字节的空间吗?一个中文字符不是占据了两个字节吗?
还望解答。
由于才注册的账号,分数不多,请勿嫌弃。
还想请问各位“坛友”,怎样获取分数?
搜索更多相关主题的帖子: include return 控制台 中文 空间 
2014-03-03 10:53
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9029
专家分:54050
注 册:2011-1-18
收藏
得分:0 
你可以试试看嘛,每种控制台使用的手段不一样
程序代码:
#include <stdio.h>
#include <conio.h>


int main(void)
{
    putchar( ""[0] );
    _getch();
    putchar( ""[1] );
    _getch();

    return 0;
}

另外,你的代码错了,char ch 应该改为 int ch。
否则的话,若返回char(-1),你用什么方法能区分出是 读入了一个char(-1)字符,还是 读入失败,返回了EOF(-1)?

2014-03-03 11:11
John0826
Rank: 1
等 级:新手上路
帖 子:15
专家分:8
注 册:2014-2-19
收藏
得分:0 
首先谢谢吧友的回答,但我感觉这不是我要寻找的答案。
有对这个问题有不同看法的吗?这个程序在我的电脑上是能够跑起来的,不存在代码错误的问题。
2014-03-03 18:57
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
沒學計算機原理就編程,唉。

授人以渔,不授人以鱼。
2014-03-03 19:48
ywg0503
Rank: 2
等 级:论坛游民
帖 子:6
专家分:11
注 册:2014-3-2
收藏
得分:1 
char 类型可以存储一个汉字,比较特殊,呵呵
2014-03-03 20:49
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:2 
回复 楼主 John0826
你先說說爲什麽會不給原樣輸出來?你可能以爲getchar()/putchar()祇能讀寫一個字符,而沒意識到自己使用了循環!

授人以渔,不授人以鱼。
2014-03-03 20:55
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册:2012-10-18
收藏
得分:2 
如何获得可用分
很多朋友总是为可用分不够用而烦恼,因此我们特意整理出一个如何获得可用分的说明,希望对大家有所帮助。

获得可用分的方式:

1、每天回帖参与大家的讨论
    每天只要回帖即可以获得10个可用分

2、发了送分贴后,在7天内结贴
    系统为了奖励您恪守信用,会返还您50%的可用分作为奖励。

    记得一定要在7天内结贴哦,其实您发帖3天后如果还没结贴系统就会提示您的,
    如果7天以后还没结贴,系统会强制替你结贴,就没有那50%的返还奖励了,并且
    您的结贴率(信用值)会降低,您的结贴率过低了可能就没有人愿意回你的帖子了

3、每月选举版主的时候积极参与投票
    参与投票是表达自己诉求的途径,同时每届版主选举的时候只要参与了投票,即
    可获得50个可用分。

=========================================================================

其他问题

1、可用分是做什么用的?
    发问题贴的给分越高,回答你问题的高手越多,你的问题将能得到更满意的答复。
    您结贴的时候把给出的可用分赠给回答问题的高手,当然谁的答案更让你满意你
    就多赠他一些,你给分结贴以后他们获赠的分即成为他们的专家分。



DO IT YOURSELF !
2014-03-03 20:57
John0826
Rank: 1
等 级:新手上路
帖 子:15
专家分:8
注 册:2014-2-19
收藏
得分:0 
回复 6楼 TonyDeng
谢谢你的回答,亲,我知道我使用循环,可以让计算机不断的输入输出,我的意思是如果我们输入了一个中文字符,但是char类型它只占有1个字节,中文字符的编码不可能完全存储在这个char类型的变量中,它只会存储中文字符编码的一部分,这样的话,再用putchar()函数,它输出一个字节的字符,那么就不会再得到中文了?我是这样浅显的理解这两个函数的执行过程。还望你解答我的疑惑。谢谢!
2014-03-04 10:58
John0826
Rank: 1
等 级:新手上路
帖 子:15
专家分:8
注 册:2014-2-19
收藏
得分:0 
回复 7楼 wp231957
谢谢
2014-03-04 10:59
快速回复:关于putchar()和getchar()两个函数的问题。
数据加载中...
 
   



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

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