Visual c++ 如何在控制台程序(C+;+;)中上行链路 在C++中,我试图返回一行来添加一些字符。 以下是我目前的代码: cout << "\n\n\n\n\n\n\n\n\n\n\xc9\xbb\n\xc8\xbc"<<flush; Sleep(50); cout

Visual c++ 如何在控制台程序(C+;+;)中上行链路 在C++中,我试图返回一行来添加一些字符。 以下是我目前的代码: cout << "\n\n\n\n\n\n\n\n\n\n\xc9\xbb\n\xc8\xbc"<<flush; Sleep(50); cout,visual-c++,animation,console-application,Visual C++,Animation,Console Application,如果您的控制台支持(大多数支持),那么您可以使用ESC[A,如下所示: cout << "\x1b[A"; coutcout将首先写入内部缓冲区,并且只定期将其输出到屏幕,而不是针对插入的每个字符。这是出于性能原因 flush告诉它现在清空缓冲区并在屏幕上显示 你应该考虑一个库,比如 在Windows中,你可以使用这个 您将在那里创建CreateConsolesScreenbuffer() 然后使用StEngSoSurCurrSo位置(COnSOLeRead句柄

如果您的控制台支持(大多数支持),那么您可以使用
ESC[A
,如下所示:

cout << "\x1b[A";

cout
cout
将首先写入内部缓冲区,并且只定期将其输出到屏幕,而不是针对插入的每个字符。这是出于性能原因

flush
告诉它现在清空缓冲区并在屏幕上显示


<>你应该考虑一个库,比如

在Windows中,你可以使用这个

您将在那里创建CreateConsolesScreenbuffer()
然后使用StEngSoSurCurrSo位置(COnSOLeRead句柄,DWOSTORT);

我使用Visual C++ 2010。当我使用它时,控制台只显示左箭头,然后“[a”。如果我改变了[a ]要进行十六进制编码并尝试它,我只会遇到另一个错误。我做错了什么?哦,我明白了,你在使用Windows。VT100转义码几乎在除Windows之外的任何地方都能工作。对此感到抱歉。Windows对控制台模式的程序都没有很好的支持。如果你只是在学习,不需要使用Windows,请尝试安装Linux VM并执行以下操作:如果你想练习C++,Linux会对你很好,因为你可以在你的程序中集成大量的可访问的开放源码库。在Windows中你几乎可以独立使用。在Windows中使用现有的LIBS也更加困难。与vc++相比,这些错误消息更容易发现错误。在windows上,您很可能需要滚动自己的控制台库。查找控制台缓冲区;它们实际上比linux更易于使用,尽管比linux更笨重和“黑客”。