gpt4 book ai didi

C++ - 等待用户输入但打印下一行

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:26:56 24 4
gpt4 key购买 nike

所以我正在用 ascci 制作一个 GUI,我想等待用户输入但打印 ascci 边框的最后一行。截至目前,它将等待用户输入,然后打印最后一条 ascci 边界线。有办法解决这个问题吗?

我想要的例子:

登录屏幕

======================================================

Welcome to Bank Beta 0.1
------------------------

(1)Login
(2)Create Account


USER INPUT HERE

======================================================

我得到的例子:

======================================================

Welcome to Bank Beta 0.1
------------------------

(1)Login
(2)Create Account


USER INPUT HERE

这是我的代码:

void login ()
{
cout << "======================================================" << endl
<< "\t\tWelcome to Bank Beta 0.1" << endl
<< "\t\t------------------------" << endl << endl
<< "\t\t (1)Login" << endl
<< "\t\t (2)Create Account" << endl << endl;
}
int main()
{
int loginChoice;
login();
cin >> loginChoice;
cout << "======================================================" << endl;
_getch();
}

最佳答案

由于您正在使用基于控制台的 GUI,我建议使用某种光标移动功能。这也将为您节省大量对齐“对象”的时间。

这是在 win 和 unix 下移动光标所需的代码

#ifdef _WIN32

#include <windows.h>

void gotoxy(int x, int y)
{
COORD p = { x, y };
SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), p);
}

#else

#include <unistd.h>
#include <term.h>

void gotoxy(int x, int y)
{
int err;
if (!cur_term)
if (setupterm(NULL, STDOUT_FILENO, &err) == ERR)
return;
putp(tparm(tigetstr("cup"), y, x, 0, 0, 0, 0, 0, 0, 0));
}

#endif

如果您不需要平台独立性,您可以删除它们中的任何一个,但是同时拥有它们也没有坏处。现在是有趣的部分:

void login ()
{
cout << "======================================================" << "\n"
<< "\t\tWelcome to Bank Beta 0.1" << "\n"
<< "\t\t------------------------" << "\n\n"
<< "\t\t (1)Login" << "\n"
<< "\t\t (2)Create Account" << "\n\n";
gotoxy(0, 7);
cout << "======================================================" << "\n";
gotoxy(0, 6);
cout << "\t\t";
}
int main()
{
int loginChoice;
login();
gotoxy(0,8);
cin >> loginChoice;
_getch();
}

写和读现在是相互独立的,你也可以更容易地随意摆弄所有的位置。

关于C++ - 等待用户输入但打印下一行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32198366/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com