在c ++中,是否有可能/如何在输入后显示控制台输出,在同一行上,在给出用户的输入之前?

时间:2014-03-31 17:58:11

标签: c++ iostream

在C ++中,当使用cout / cin写入控制台并从控制台获取信息时,是否可以执行类似

的操作
  

在此输入您的数据 - > __< - 在此输入您的数据

用户输入光标位于下划线所在的位置,输出位于光标的两侧,然后用户输入的输入出现在这两位输出之间,然后返回到cin?

如果是这样,我将如何做到这一点?

我希望在我的标题和解释之间明确我要问的内容,如果不是,我可以尝试进一步解释。

理想情况下,我想使用iostream / cin& amp; cout,因为那些是我过去使用过的。如果解决方案是使用... printf或类似的我会这样做,但可能需要一些额外的解释,因为我没有真正使用它来输出。

注意:我试图找到这个问题的答案,我不能肯定地说没有,这主要是找到大量其他输入/输出的问题 - 相关问题。

编辑:这是在Windows 7上使用DOS shell,从Windows Visual Studio 2012命令行编译器进行编译。

2 个答案:

答案 0 :(得分:3)

如果是Windows,请使用Console API。 http://msdn.microsoft.com/en-us/library/windows/desktop/ms682073(v=vs.85).aspx

如果使用Linux,请使用curses库:http://en.wikipedia.org/wiki/Ncurses

答案 1 :(得分:0)

如果您使用的是Windows,则可以选择使用conio.h。

#include<iostream.h>
#include<conio.h>

int main()
{
    clrscr();
    gotoxy(5,3);
    cout<<"HELLO WORLD";
    gotoxy(60,10);
    cout<<"HELLO WORLD";
    gotoxy(35,20);
    cout<<"HELLO WORLD";
    getch();
    return 0;
}

如果您只想使用ANSI库,可以尝试查看以下讨论: http://www.cplusplus.com/forum/lounge/78225/

在这两种情况下,您所要做的就是打印第一个文本,然后使用gotoxy,然后再打印seconde文本,再次输入gotoxy,并读取用户输入。