C++ C++;如何将cin和cout放在同一条线上?
所以我正试图为我的项目编写一个程序,我已经差不多完成了。现在我要做的就是让控制台看起来更具设计感,例如:C++ C++;如何将cin和cout放在同一条线上?,c++,C++,所以我正试图为我的项目编写一个程序,我已经差不多完成了。现在我要做的就是让控制台看起来更具设计感,例如: cout<<"\t\t\t\t\t\t Please Login With Admin Credentials!"<<endl; cout<<"\t\t\t\t\t\t ==================================="<<endl; cout<<
cout<<"\t\t\t\t\t\t Please Login With Admin Credentials!"<<endl;
cout<<"\t\t\t\t\t\t ==================================="<<endl;
cout<<"\t\t\t\t\t\t + [=] Enter Username: +"<<endl;
cout<<"\t\t\t\t\t\t + [=] Enter Password: +"<<endl;
cout<<"\t\t\t\t\t\t ==================================="<<endl;
cout您不能使用backspace返回到前面的行,但可以在执行期间使用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;
在我看来,这是实现您的需求的最简单的方法,没有任何代码复杂性。您不能使用backspace返回到前面的行,但您可以在执行期间使用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;
在我看来,这是实现您的需求而不需要任何代码复杂性的最简单的方法。我按照Alex的建议使用HANDLE hStdout=GetStdHandle(STD\u OUTPUT\u HANDLE);setConsoleorSorposition(hStdout,{1,1})代码>在Windows.h库下&它工作得很好!我只需要算出光标的坐标。我按照Alex的建议使用HANDLE hStdout=GetStdHandle(STD\u OUTPUT\u HANDLE);setConsoleorSorposition(hStdout,{1,1})代码>在Windows.h库下&它工作得很好!只需计算出我的光标的坐标。< /P>是的,但是你需要使用系统特定的终端函数或库,比如NCURSE。不使用标准C++功能。可能有特定于操作系统的功能来控制终端,或者您可以使用,或者某些终端控制库,如ncurses。如果您只想在windows下启动它,请查看文档-在windows下-包括“windows.h”,尝试使用HANDLE hStdout=GetStdHandle(STD\u OUTPUT\u HANDLE);SetConsoleCursorPosition(hStdout,{1,1});//将在坐标1,1上移动。坐标以字符为单位,(0,1)表示第一行的第二个字符。你必须计算+的位置。希望这有帮助。顺便说一句,您不应该使用制表符(\t)作为间距。该选项卡有两种含义:1)移动到下一个{defined}选项卡停止;或2)替代标准的间距。选项卡可以表示2、3、4、8或任意数量的间距。间距取决于字体;可变宽度字体可能具有多个间距,或者其间距可能小于其他字符。更喜欢使用I/O操作器的“宽度”。是的,但您需要使用系统特定的终端功能或库,例如NCURSE。不使用标准C++功能。可能有特定于操作系统的功能来控制终端,或者您可以使用,或者某些终端控制库,如ncurses。如果您只想在windows下启动它,请查看文档-在windows下-包括“windows.h”,尝试使用HANDLE hStdout=GetStdHandle(STD\u OUTPUT\u HANDLE);SetConsoleCursorPosition(hStdout,{1,1});//将在坐标1,1上移动。坐标以字符为单位,(0,1)表示第一行的第二个字符。你必须计算+的位置。希望这有帮助。顺便说一句,您不应该使用制表符(\t)作为间距。该选项卡有两种含义:1)移动到下一个{defined}选项卡停止;或2)替代标准的间距。选项卡可以表示2、3、4、8或任意数量的间距。间距取决于字体;可变宽度字体可能具有多个间距,或者其间距可能小于其他字符。更喜欢使用I/O操纵器的“宽度”。