C语言关于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; } 这个程序的原理不是输入一个字符检测其是否为回车然后再检测其是否为空格,然后再输入一个接着循环。可是我为什么可以一次性输入字符串,谁能帮我解释下谢谢了

第1个回答  2019-01-22
可以这样理解
程序执行,执行到ch=getchar();因为没有输入数据,所以暂停
键盘输入一个字符串,假设为abcdefg,你只是输入,但是程序并没有读入全部用(不要认为你输入了数据,程序就读入了数据);
继续执行,读入‘a’,赋给ch
判断循环条件,再判断if,输出‘b’,读入b赋给ch
判断循环条件,再判断if,输出,读入,赋值ch
。。。。
判断循环条件,退出循环,输出ch
相似回答