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;
}
展开
 我来答
旷野行风
推荐于2017-09-09 · TA获得超过366个赞
知道小有建树答主
回答量:302
采纳率:33%
帮助的人:233万
展开全部
第一次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()把回车也读入? 毕竟回车是一定要按的
追答
多加一个getchar()就好了.
比如
while((ch=getchar())!='#')
{
putchar(ch);

getchar();

}
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式