-1
这里是我试图写一个的一些代码部分:可编辑控制台输出
//Choice Based Menu
#include <iostream.h>
#include <conio.h>
int main()
{
char choice;
cout<<"Menu"<<endl<<endl;
cout<<"A. Option A"<<endl;
cout<<"B. Option B"<<endl;
cout<<"C. Option C"<<endl;
cout<<"Q. Quit"<<endl;
cout<<endl<<"Choice:\t";
do
{
choice=getch();
cout<<choice<<"\r";
switch(choice)
{
case 'A':
{
cout<<endl<<"Option A!";
break;
}
case 'B':
{
cout<<endl<<"Option B!";
break;
}
case 'C':
{
cout<<endl<<"Option C!";
break;
}
case 'Q':
{
return 0;
}
default:
{
cout<<endl<<"Invalid Choice! Please try again.";
break;
}
}
}while(1);
}
因为循环无限地继续,它等待执行先前选择选项的代码之后的另一输入选项。
Menu
A. Option A
B. Option B
C. Option C
Q. Quit
Choice: A
Option A!
我希望行“选择:A”每次更新最近输入的选项。我希望先前选择的选项(选项A!)的输出替换为新选择的选项的输出。
我试过使用'\ r',因为你可能已经注意到了。这是行不通的,因为它给了我一个回车,即它回到行的开头。我希望它只能回到一个字符,而不是回到行首。
conio应该有一个移动光标的功能。尝试:gotoxy(int x,int y) – Pubby
http://stackoverflow.com/questions/45286/how-can-i-overwrite-the-same-portion-of-the-console-in-a-windows-native -c-conso – JRL
因为我错过了你已经使用这个库,所以给标签添加了'conio' - 重新标记可能有助于找到conio专家(并且避免像我的(现在已删除)这样的ncurses答案)。 – Tom