c语言 scanf的菜单如何在输入错误时光标退回

intchoose(intmin,intmax){intchoice,state;while((state=scanf("%d",&choice))!=1||(choic... int choose(int min,int max){
int choice,state;
while((state=scanf("%d",&choice))!=1||(choice<min||choice>max))
{
if(state!=1){
scanf("%*s");
}
}
return choice;
}
代码贴上 我做了一个菜单的简单函数 就是发现无法做到输入错误光标恢复原位置 必须换行输入 。求教
展开
 我来答
百度网友feee121
2014-01-14 · TA获得超过306个赞
知道小有建树答主
回答量:310
采纳率:100%
帮助的人:366万
展开全部
有一种做法是,输入错误之后先清屏,就是用system("cls"),然后再把菜单打印出来,这样可以达到光标恢复原位置的效果。另外还有一种方法,是调用控制台函数,记得有个函数叫SetConsoleCursorPosition,是在windows.h里,用来设置光标的位置。以前在TC中有个很方便的函数叫gotoxy,但是vc没有,所以一般自己写个gotoxy,里面包含这个SetConsoleCursorPosition,以达到随便控制光标位置的效果。我能想到的方法就这些,如果效果你还不满意那我也没办法了
通天蚕豆
2014-01-13
知道答主
回答量:1
采纳率:0%
帮助的人:1421
展开全部
是这样的,都是向下执行,流水式,不允许回退,如果是输入一串字符串,那么在没回车之前可以前删修改,但是也仅限于当前一行。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
蝶彩枫林5
2014-01-13 · 超过20用户采纳过TA的回答
知道答主
回答量:152
采纳率:0%
帮助的人:61.8万
展开全部
你去相关论坛里问问去
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
与子如初见
2014-01-14 · TA获得超过1638个赞
知道小有建树答主
回答量:1117
采纳率:100%
帮助的人:801万
展开全部
c语言本身应该实现不了这个功能!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式