标题:请问getchar()和putchar()是怎么工作的?为什么我输入一个字符并不会立刻输 ...
取消只看楼主
Niderhoger
Rank: 1
等 级:新手上路
帖 子:17
专家分:0
注 册:2019-11-3
结帖率:100%
已结贴  问题点数:20 回复次数:2 
请问getchar()和putchar()是怎么工作的?为什么我输入一个字符并不会立刻输出?而是等待输入换行符才进行输出?
请问getchar()和putchar()是怎么工作的?为什么我输入一个字符并不会立刻输出?而是等待输入换行符才进行输出?

//cypher1.c--更改输入,空格不变
#include <stdio.h>
#define SPACE ' '     /*SPACE表示单引号-空格-单引号*/
int main(void)
{
    char ch;

    ch = getchar();       /*读取一个字符*/
    while (ch != '\n')    /*当一行未结束时*/
    {
        if (ch == SPACE)   /*留下空格*/
            putchar(ch);   /*该字符不变*/
        else
            putchar(ch + 1);  /*改变其他字符*/
        ch = getchar();    /*获取下一个字符*/
    }
    putchar(ch);     /*打印换行符*/

    return 0;
}
搜索更多相关主题的帖子: getchar 输出 输入 字符 putchar 
2019-11-15 17:59
Niderhoger
Rank: 1
等 级:新手上路
帖 子:17
专家分:0
注 册:2019-11-3
得分:0 
嗯 明白一些了 谢谢大家
2019-11-17 10:41
Niderhoger
Rank: 1
等 级:新手上路
帖 子:17
专家分:0
注 册:2019-11-3
得分:0 
那么意思是getchar()让我输入的字符都留在一个缓冲区,然后putchar呢?

ch = getchar();      
    while (ch != '\n')   
    {
        if (ch == SPACE)   
            putchar(ch);   
        else
            putchar(ch + 1);
        ch = getchar();  
    }

这一段是我 输入的时候就已经确定了输出还是输入完在确定输出?
意思是我输入一个字符的过程中就执行了if else语句还是等我输入所有字符之后再对每个字符进行挑选?
2019-11-17 11:15



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




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

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