C++ “打印”;";在cin之前?

C++ “打印”;";在cin之前?,c++,visual-studio,iostream,C++,Visual Studio,Iostream,我遇到了一个小问题,我不确定是否有可能用iostream代码来解决这个问题,但我认为还是值得一问 #include <iostream> #include <string> using namespace std; string cmd; int main() { cout << "-------------" << endl; cout << "command: "; cin >> cmd; cout <&l

我遇到了一个小问题,我不确定是否有可能用iostream代码来解决这个问题,但我认为还是值得一问

#include <iostream>
#include <string>

using namespace std;

string cmd;

int main() {

cout << "-------------" << endl;
cout << "command: ";
cin >> cmd;
cout << "-------------" << endl;
system("pause");
}

如果这是不可能的,请你指出我可能使用的一些库的方向,我可以用它来实现这个目标?

在C++中没有实现标准的方法。 不同的终端有自己的功能,不同的系统有自己的API与终端交互


在等待输入之前,必须首先执行底线的输出,但是可以将输出“光标”移动到屏幕底部以外的其他位置。您可以在目标系统的文档中找到详细信息。

我建议您可以尝试使用在指定的控制台屏幕缓冲区中设置光标位置

此代码使用setConsoleUrsOrPosition()将当前输出位置移动到第1行第9列:

#include <iostream>
#include <string>

#include <windows.h>

using namespace std;

string cmd;

int main()
{


    cout << "-------------\n" << "command:  \n" << "-------------" << endl;


    HANDLE hConsole = GetStdHandle(STD_OUTPUT_HANDLE);

    if (INVALID_HANDLE_VALUE != hConsole)
    {
        COORD pos = {9, 1 };
        SetConsoleCursorPosition(hConsole, pos);
        cin >> cmd;
    }


    system("pause");

}
#包括
#包括
#包括
使用名称空间std;
字符串cmd;
int main()
{

是的,你可以,但你必须问问自己:值得吗?你需要某种光标控制库。一些命令行允许你用转义序列移动光标。这取决于你的环境。嗨@bolov,我正在制作一个基于文本的冒险游戏,UI将由围绕文本字段的光标组成,因此,如果我能在本例中简单地找出如何实现它,我可以在构建UID时进一步实现它。你听说过吗?嗨@Eljay,我听说过,我只是努力掌握它,因为我找不到关于所有函数等的可靠文档。这是你会推荐的吗?如果是的话,我会完全承诺并研究它。这正是h现在我想要它,谢谢!我现在应该能够通过操纵光标位置来构建我的UI的其余部分了!我只有两个问题,“hConsole”得到了什么?(可能是控制台的一些参考?)if语句实际检查的是什么?hConsole:控制台屏幕缓冲区的句柄。您可以在调用时为控制台屏幕缓冲区指定安全描述符。如果函数成功,返回值是新控制台屏幕缓冲区的句柄。如果函数失败,返回值无效。\u handle\u value。if stat这是为了确保控制台屏幕缓冲区的手柄已关闭。
#include <iostream>
#include <string>

#include <windows.h>

using namespace std;

string cmd;

int main()
{


    cout << "-------------\n" << "command:  \n" << "-------------" << endl;


    HANDLE hConsole = GetStdHandle(STD_OUTPUT_HANDLE);

    if (INVALID_HANDLE_VALUE != hConsole)
    {
        COORD pos = {9, 1 };
        SetConsoleCursorPosition(hConsole, pos);
        cin >> cmd;
    }


    system("pause");

}