C++ 如何在同一行中和在一条线上?

  • 本文关键字:一条 一行 C++ c++
  • 更新时间 :
  • 英文 :


所以我正在尝试为我的项目编写一个程序,我已经完成了。现在我想做的是让控制台看起来更设计一些,例如:

cout<<"tttttt                 Please Login With Admin Credentials!"<<endl;
cout<<"tttttt                  ==================================="<<endl;
cout<<"tttttt                  +   [=] Enter Username:           +"<<endl;
cout<<"tttttt                  +   [=] Enter Password:           +"<<endl;
cout<<"tttttt                  ==================================="<<endl;

现在,我希望用户在此特定设计中输入用户名和密码。如您所见,我希望在+之前输入用户名和密码。可能吗?

不能使用退格键返回到前面的行,但可以在执行期间使用cin

如果您考虑以下几点:

std::string something, something2;
cout<<"                 Please Login With Admin Credentials!"<<endl;
cout<<"                  ==================================="<<endl;
cout<<"                  +   [=] Enter Username:           +";
for (int i = 1; i <= 12; i++) {
std::cout << 'b'; // ---------- backspace 12 times
}
std::cin >> something;
cout<<"                  +   [=] Enter Password:           +";
for (int i = 1; i <= 12; i++) {
std::cout << 'b'; // ---------- backspace 12 times
}
std::cin >> something2;
cout<<"                  ==================================="<<endl;

将输出如下内容:

Please Login With Admin Credentials!
===================================
+   [=] Enter Username:hello      + // takes input 1
+   [=] Enter Password:howareyou  + // takes input 2
===================================

从我的角度来看,这是在不增加任何代码复杂性的情况下实现您的需求的最简单方法。

我遵循了 Alex 的建议,在 Windows.h 库下使用HANDLE hStdout = GetStdHandle(STD_OUTPUT_HANDLE); SetConsoleCursorPosition(hStdout, { 1, 1 });,它工作得很好!只需要找出我的光标的坐标。

最新更新