0

好的,假设我有一个程序可以在用户输入信息时计算一行。

对于这个例子,假设我们正在使用代码

cout << "THIS CODE IS BEING COUTED" << endl;

假设对于我们的示例,用户正在输入一个输入,就目前而言,他们只输入了“hello”,但还没有按 enter。

就目前而言,当执行该行时,用户将看到“helloTHIS CODE IS BEING COUTED”,他们将获得一个新行来输入信息。

我想要做的是代替 cout'ing,我想获取当前输入中的文本,从输入中删除它,cout 需要 cout'ed 的行,然后将信息重新输入到输入。

这是有道理的,还是一堆乱七八糟的废话?

谢谢阅读。

编辑:澄清:我想要它,所以如果我在我的输入中输入了一个字符串并且我 cout,那么 cout 将显示在我的输入上方,而不是在我的输入之后插入它。我还希望我的输入不受影响,以便用户可以继续输入或删除已经输入的内容。

4

2 回答 2

0

您可以在一个主线程中询问用户,cin >> data并从其他线程中的标准输入读取数据,fread或者类似的东西与FILE*句柄一起使用。

在用户输入您想要的数据后,您可以清除屏幕(例如通过clrscr()inconio.h或任何其他更好的方式)并计算出您想要的数据。

于 2013-11-13T08:08:46.127 回答
0

如果您正在逐个字符地获取输入,那么当您需要输出文本时,您可以通过打印回车符“\r”将输出位置移动到行首。然后您的输出将覆盖当前输入,然后打印换行符并重新打印到目前为止输入的内容

cout << "\r" << output << "\n" << currentinput;

如果输出比输入短,那么您只会部分覆盖输入,在这种情况下,您可以用空格填充输出,直到当前输入的长度

于 2013-11-13T07:59:51.057 回答