C – 等待用户输入但打印下一行
发布时间:2020-12-16 03:42:53 所属栏目:百科 来源:网络整理
导读:所以我用ascci制作一个GUI,我想等待用户输入但打印ascci边框的最后一行.截至目前,它将等待用户输入,然后打印最后一个ascci边框线.有没有什么办法解决这一问题? 我想要的例子: 登录屏幕 ====================================================== Welcome to
所以我用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 << "ttWelcome to Bank Beta 0.1" << endl << "tt------------------------" << endl << endl << "tt (1)Login" << endl << "tt (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)); } #endif 如果您不需要平台独立性,可以删除它们中的任何一个,但同时使用它们都不会造成任何伤害.现在有趣的部分: void login () { cout << "======================================================" << "n" << "ttWelcome to Bank Beta 0.1" << "n" << "tt------------------------" << "nn" << "tt (1)Login" << "n" << "tt (2)Create Account" << "nn"; gotoxy(0,7); cout << "======================================================" << "n"; gotoxy(0,6); cout << "tt"; } int main() { int loginChoice; login(); gotoxy(0,8); cin >> loginChoice; _getch(); } 写作和阅读现在彼此独立,你也可以更容易地处理所有的职位. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |