加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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();
}

写作和阅读现在彼此独立,你也可以更容易地处理所有的职位.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读