首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

哪位高手来给小弟我解释解释getchar和putchar

2012-03-25 
谁来给我解释解释getchar和putchar#include stdio.h#define SPACE int main(void){char chch getc

谁来给我解释解释getchar和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)这条语句,即使是这样输出,可定义的ch是字符型变量,而不是字符串数组,为什么可以输出一串字符串?

[解决办法]
因为现在多数系统采用的是缓冲输入,也就是等用户按下回车后再把输入的内容一次性送到输入对列,getchar一次从输入队列里面读取一个字符,你用到了循环,当然会打印整个字符串,直到最后一个换行符!只有采用非缓冲式输入的系统才是即时回显,也就是你输入一个就显示一个,例如IBM PC就有专门的非缓冲输入函数!

热点排行