如何使以前的消息在 Visual Studio 2013 控制台应用程序中消失?(C++)

How do I make my previous messages disappear in Visual Studio 2013 console applications? (C++)

本文关键字:应用程序 控制台 消失 C++ 2013 Studio 何使 消息 Visual      更新时间:2023-10-16

所以如果我写一段这样的代码:

string name, feeling;
cout << What is your name?" << endl;
cin >> name;
cout << "Hello, " << name << "!"<<endl;
cout << "So how are you feeling today?" << endl;
cin >> feeling;

我得到输出:

What is your name?
James (input from user)
Hello, James!
So how are you feeling today?`

但我希望它删除第一条消息和输入,因此用户将在控制台窗口中得到以下内容:

Hello, James!
So how are you feeling today?

只要你保持在同一行上,通常很容易使用b(退格)和/或r(不带换行符的回车)和一些空格的组合来返回到一行的开头并写下那里显示的内容。

如果您需要执行更多操作,则可以使用Windows控制台功能(例如SetConsoleCursorPositionFillConsoleOutputCharacter)将数据写入所需的位置,覆盖现有数据等。

如果你关心Linux等的可移植性,或者已经知道如何用curses编程,你可能更喜欢使用PDCurses。这基本上是在Windows控制台功能之上重新实现ncurses编程接口。

如果你在Windows环境中工作,试试这个

#include <iostream>
int main()
{
    std::cout  << "This is the first line";
    system("cls");
    std::cout << "This is the line on clear console" << std::endl;
    return 0;
}