学习C语言碰到了一个问题

★年少づ轻狂 2018-11-03 07:50:00
#include<stdio.h>
int main()
{
char m,n;
printf("开始录入\n");
while (1)
{
m = getch();
n = m;
if (m == '-')
{
puts("输入结束");
exit(0);
}
else
{

//录入
putchar(n);
printf("按“-”号停止输入,按其他任意键继续输入\n");
}
}
}



当我按下任意键,为什么会输出两次“按“-”号停止输入,按其他任意键继续输入” 而且第二行前面还有一个空格,不懂求大神教

...全文
63 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
e调布鲁斯 2018-11-08
  • 打赏
  • 举报
回复
考虑实际你的逻辑问题是,else是无条件执行一次的,理论上,你什么都不输入都会输出。
倾星 2018-11-07
  • 打赏
  • 举报
回复
你的回车被读取了,所以计算机以为你输入了两个字符
zhouqunhai 2018-11-04
  • 打赏
  • 举报
回复
我的IDE没问题
qq1073965414 2018-11-04
  • 打赏
  • 举报
回复
大概是你自己不小心加了个空格?
@风轻云淡_ 2018-11-03
  • 打赏
  • 举报
回复
估计你可能是不小心碰到空格了,我在2015里是没有问题的,运行并正确输出结果,建议你多试几次,确认下是不是真的有问题。
lkj2016 2018-11-03
  • 打赏
  • 举报
回复
引用 2 楼 qq_17755271 的回复:
我用VS2017就这样显示,我用我同学VC6.0可以正常显示,怎么回事啊 我也加上conio.h了

不显示在控制台,这个重点,你之前已经录入一个空格了,只不过控制台没显示
不过你的那个1怎么显示出来的
★年少づ轻狂 2018-11-03
  • 打赏
  • 举报
回复
我用VS2017就这样显示,我用我同学VC6.0可以正常显示,怎么回事啊 我也加上conio.h了
lkj2016 2018-11-03
  • 打赏
  • 举报
回复
getch():

所在头文件:conio.h

函数用途:从控制台读取一个字符,但不显示在屏幕上

函数原型:int getch(void)

69,371

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧