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;
}
代码贴上 我做了一个菜单的简单函数 就是发现无法做到输入错误光标恢复原位置 必须换行输入 。求教 展开
int choice,state;
while((state=scanf("%d",&choice))!=1||(choice<min||choice>max))
{
if(state!=1){
scanf("%*s");
}
}
return choice;
}
代码贴上 我做了一个菜单的简单函数 就是发现无法做到输入错误光标恢复原位置 必须换行输入 。求教 展开
展开全部
有一种做法是,输入错误之后先清屏,就是用system("cls"),然后再把菜单打印出来,这样可以达到光标恢复原位置的效果。另外还有一种方法,是调用控制台函数,记得有个函数叫SetConsoleCursorPosition,是在windows.h里,用来设置光标的位置。以前在TC中有个很方便的函数叫gotoxy,但是vc没有,所以一般自己写个gotoxy,里面包含这个SetConsoleCursorPosition,以达到随便控制光标位置的效果。我能想到的方法就这些,如果效果你还不满意那我也没办法了
展开全部
是这样的,都是向下执行,流水式,不允许回退,如果是输入一串字符串,那么在没回车之前可以前删修改,但是也仅限于当前一行。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你去相关论坛里问问去
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
c语言本身应该实现不了这个功能!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询