C语言 下面代码执行后 输入t 回车 显示t 那为什么光标会移动到下一行
#include<stdio.h>intmain(){charch;while((ch=getchar())!='#'){putchar(ch);}return0;}...
# include <stdio.h>
int main ()
{
char ch;
while ((ch=getchar())!='#')
{
putchar (ch);
}
return 0;
} 展开
int main ()
{
char ch;
while ((ch=getchar())!='#')
{
putchar (ch);
}
return 0;
} 展开
1个回答
展开全部
第一次while循环,
getchar()读入t,putchar()输出t.
第二次while循环,
getchar()读入回车,putchar()输出回车.
你可以在while里把putchar(ch);改为:
printf("ch=%c\tch=%d",ch,ch);
这样看的清晰些.
输入t回车,会输出:
ch=t ch=116(116是t的ascii码)
ch=
ch=12(12是回车的ascii码)
getchar()读入t,putchar()输出t.
第二次while循环,
getchar()读入回车,putchar()输出回车.
你可以在while里把putchar(ch);改为:
printf("ch=%c\tch=%d",ch,ch);
这样看的清晰些.
输入t回车,会输出:
ch=t ch=116(116是t的ascii码)
ch=
ch=12(12是回车的ascii码)
更多追问追答
追问
明白了 那这类代码 怎么改能避免getchar()把回车也读入? 毕竟回车是一定要按的
追答
多加一个getchar()就好了.
比如
while((ch=getchar())!='#')
{
putchar(ch);
getchar();
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询