当被一个输入分开时,有两个控制台输出同时显示
Having 2 console outputs show at the same time when separated by an input
我正在尝试用c++创建一个简单的登录页面。目前,在我的程序中,您必须在密码输入可用之前输入用户名。我希望能够显示两者,并可以选择先输入一个,然后再输入另一个。
cout << "User: "; cin >> enteruser;
cout << "Pass: "; cin >> enterpass;
return 0;
我希望它类似于web登录页面,但在c++控制台应用程序窗口中。
ncurses的方式类似于:
#include <ncurses.h>
char userFieldText = "User: ";
char passFieldText = "Pass: ";
char inputUserName[100];
char inputPass[100];
int rowCount;
int columnCount;
initscr();
getmaxyx(stdscr,rowCount,columnCount);
mvprintw(1,1,"%s",userFieldText);
mvprintw(2,1,"%s",passFieldText);
getstr(inputUserName); // Get input until enter
getstr(inputPass); // Get input until enter
endwin();
从ncurses文档中摘录,如果您想进一步了解它们的库函数,请参阅此链接。您可以获得一些方便的函数,这些函数可以帮助您使用ncurses之类的东西遍历控制台。没有普通C++那么有创意,但这取决于你是否希望将来从像它这样的库中获得更多功能。
这里有一个基本实现,不使用任何库,只使用在http://ascii-table.com/ansi-escape-sequences.php以设置光标位置。
#include <iostream>
#include <string>
#include <stdio.h>
void cursor_up(int lines)
{
/* Enter escape sequence */
printf("%c%c%dA", 0x1b, 0x5b, lines);
}
void cursor_forward(int cols)
{
/* Enter escape sequence */
printf("%c%c%dC", 0x1b, 0x5b, cols);
}
int main(int argc, char *argv[])
{
std::string username;
std::string passwd;
std::string user_prompt = "Enter user: ";
std::string passwd_prompt = "Enter password: ";
std::cout << user_prompt << std::endl;
std::cout << passwd_prompt << std::endl;
cursor_up(2);
cursor_forward(user_prompt.length());
std::cin >> username;
cursor_forward(passwd_prompt.length());
std::cin >> passwd;
return 0;
}
相关文章:
- 这两个代码片段相似,但显示的结果不同
- 创建具有两个视口的Qt3D C++场景,其中显示适当的不同网格
- 在 txt 文件中显示前两个数字的程序
- 当被一个输入分开时,有两个控制台输出同时显示
- C++显示两个区间之间的数字的程序检查一个数字是否可以表示为两个素数的总和
- 如何使用C++中不是文字的变量在数字中显示单引号和两个引号?假设 6'2" 英尺
- 使用两个纹理 SDL2 显示视频
- 为什么Xor-ing两个“ char”阵列显示垃圾位
- 在同一屏幕上显示两个不同的对象
- 使用OpenGL显示两个对象.纹理不像预期的那样行为
- 当总和本身显示为180时,当我从两个角度的总和中提取180时,我会得到错误的答案
- C / SFML:使用两个递归调用在屏幕上打印凸形形状仅显示第一个递归调用中的形状,而不是第二个
- 为什么当我有两个函数时编译器没有显示错误,一个将采用基类,一个将派生类作为参数
- 输入两个整数,并使用预定义函数显示最大数字
- 多映射仅显示两个前元素
- 如何显示两个整数除法的浮点结果
- 无法在DirectShow中显示两个摄像机
- QSplitter显示两个小部件之间的分隔符或边距
- 如何在c++中显示两个相邻的函数
- 是否有可能在Qt上的一个窗口中显示两个不同的对话框窗口