关于C语言的putchar()函数

#include <stdio.h>
#define 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);
}
在这个程序中putchar(ch+1)为什么没有立即输出?

第一个只能输出字符
第二个可以输出任意变量
putchar
c语言函数之一,作用是向终端输出一个字符。其格式为putchar(c),其中c可以是被单引号(英文状态下)引起来的一个字符,可以是介于0~127之间的一个十进制整型数(包含0和127),也可以是事先用char定义好的一个字符型变量。
putchar函数的基本格式为:putchar(c)。
(1)当c为一个被单引号(英文状态下)引起来的字符时,输出该字符(注:该字符也可为转义字符);
(2)当c为一个介于0~127(包括0及127)之间的十进制整型数时,它会被视为对应字符的ASCII代码,输出该ASCII代码对应的字符;
(3)当c为一个事先用char定义好的字符型变量时,输出该变量所指向的字符。
该函数的功能是在stdout上输出单个字符。
用 法: int putchar(int ch);
putchar(c) 就是输出一个字符追问

你好,为什么第一次输入之后没有改变 只有敲完回车每个值加1才出现?

温馨提示:答案为网友推荐,仅供参考
第1个回答  2016-08-05
你说的没有立即输出是指什么,我测试没问题,输入一个字符然后回车不就可以了?追问

就是连续输入多个字符之后 按回车 每个字符都对应的加1
为什么可以输入多个字符,而不是输入一个字符就会加1

追答

我粘贴一段说明给你看看吧,比我说的详细多了:

函数的返回值为用户输入的第一个字符的ASCII码,若出错返回-1,且将用户输入的字符回显到屏幕。如果用户在按回车键之前输入了不只一个字符,其他字符会保留在键盘缓冲区中,等待后续getchar()调用读取。也就是说,后续的getchat()调用不会等待用户按键,而是直接读取缓冲区中的字符,直到缓冲区的字符读取完毕后,才等待用户按键。

本回答被提问者采纳
相似回答