发布网友 发布时间:2022-04-27 05:12
共2个回答
热心网友 时间:2022-06-26 18:37
楼主你好!
你是不是发现,每次运行完之后,光标都会回到首行第一个位置?
原因很简单!
if(in[i]=='\r')
{
in[i+1]='\0';
break;
}
这段代码的问题!因为你把'\r'存入了in[i]之中了!'\r'就是回到该行的第一位置的作用!
如果你可以这样验证,把上面这段代改为下面
if(in[i]=='\r')
{
in[i]='\0';
break;
}
把那个'\r'用'\0'覆盖掉,这样输出的时候,光标就不会回到该行的第一个位置了!
我个人认为getch()没什么注意的!因为这个函数不怎么使用!
大概大学作业里面,叫你写简单的什么密码登陆之类的用到,其他我感觉我不怎么用到!
希望我的回答对你有帮助!
热心网友 时间:2022-06-26 18:37
下面这样改之后应该能符合你的要求吧。光标回到行首的原因之前的朋友已经说了,是'\r'的问题。因为你的代码执行后,字符串in里倒数第二个字符是'\r',所以在算法上把它去掉就好了。至于'\r'的效果,我也说不好,可能就是让光标回到当前行的行首位置吧。if(in[i]=='\r')
{
in[i]='\0';
break;
}