可编辑控制台输出

Editable Console Output

本文关键字:输出 控制台 编辑      更新时间:2023-10-16

这是我想写的一些代码的一部分:

//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!

我希望"Choice: A"行每次都用最近输入的选项更新。我希望之前选择的选项(选项A!)的输出被替换为新选择的选项的输出。

我尝试使用'r',你可能已经注意到。这不起作用,因为它给了我一个回车,即它移动到行开头。我希望它只向后移动一个字符,而不是移到行首

This This:

#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;
    do
    {
        choice=getch();
        cout << "r" << "Choice:t"; // Moved into the loop
        switch(choice)
        {
            case 'A':
            {
                cout << "Option A!"; // No more endl
                break;
            }
            case 'B':
            {
                cout << "Option B!";
                break;
            }
            case 'C':
            {
                cout << "Option C!";
                break;
            }
            case 'Q':
            {
                return 0;
            }
            default:
            {
                cout << "Invalid Choice! Please try again.";
                break;
            }
        }
    }while(1);
    cout << endl; // New sole endl
}

这不是你想要的,但它是最接近的,可以用最少的返工。