level 7
#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;}
萌新想问 第二个ch=getchar()是什么作用?
感觉应该是再次输入字符的意思
可是运行的时候只能输入一次
去掉这个后
输出了无限的字符.....
2017年09月25日 09点09分
1
level 1
第一个getchar读取的字符被赋值给ch,若第一个输入的为空格则照常输出,其他按ansii码加一输出,最终通过第二个while循环内的getchar给ch赋下一个字符的值
2017年09月25日 10点09分
6
level 1
由于输入数据完毕时以回车结尾,该while循环把ch被赋值到回车为停止条件。若删去第二个getchar,则无法按顺序一个一个读取输入的字符,自然就会无限输出
2017年09月25日 10点09分
7
level 8
你输入的字符会先放在缓存区里吧,然后第一个getchar()一个一个读取,但是在你按下enter之后在确定的同时缓存区里会留下\n第二个getchar就是为了把缓存区里的\n赋值给ch达成结束条件,如果没有的话自然就无限循环了
2017年09月25日 10点09分
10