好的,我们假设我有一个程序可以在用户输入信息时输入一行。
对于这个例子,假设我们正在使用代码
cout << "THIS CODE IS BEING COUTED" << endl;
比方说,对于我们的例子,用户正在输入输入,因为它只是输入“你好”,但还没有输入。
就目前而言,当执行该行时,用户将看到 “helloTHIS CODE正在被削减” 他们将获得一条输入信息的新线。
我想做的不是cout'ing,我想在当前输入中获取文本,从输入中删除它,cout需要cout的线,然后重新输入信息输入。
这是否有意义或者这是一堆乱七八糟的废话?
感谢阅读。
编辑:澄清:我想要它,所以如果我输入一个字符串输入我的cout,cout将显示在我的输入上方,而不是插入我的输入。我还希望我的输入不受影响,以便用户可以继续输入或删除已输入的内容。
答案 0 :(得分:0)
如果您逐个输入字符,那么当您需要输出文本时,可以通过打印回车符''\ r'将输出位置移动到行的开头。然后您的输出将覆盖当前输入,然后打印换行并重新打印到目前为止输入的内容
cout << "\r" << output << "\n" << currentinput;
如果输出短于输入,则只会部分覆盖输入,在这种情况下,您可以使用空格填充输出,直到当前输入的长度
答案 1 :(得分:0)
您可以在一个主线程中询问用户cin >> data
,并在fread
之类的其他帖子中读取stdin中的数据,或类似于FILE*
句柄的内容。
在您想要的数据被用户输入后,您可以清除屏幕(例如clrscr()
中的conio.h
或其他任何更好的方式)并cout您想要的内容。