在同一行输入带有 CIN 的值

Entering values with CIN on the same line

我正在尝试在同一行中输入值,例如按回车键:

1 [enter],2 [enter],3[enter]

输出应如下所示

请输入值:1、2、3

谢谢!


我能找到的唯一答案是

cin >> value1 >> value2 >> value3

但我特别需要在输出中使用逗号

提前谢谢大家

如果你想使用字符串,你可以对 cin 使用“string”,所以在你的情况下是“,”。

我写了一个程序,可能做你想做的事:

#include <iostream>
using std::cout;
using std::endl;
using std::cin;

int main()
{
    int value1;
    int value2;

    cin >> value1;
    cout << "\x1b[1A" << value1 << ", ";
    cin >> value2;

    cout << endl;

    cout << value1 << endl;
    cout << value2 << endl;
}

它的作用是跳回最后一行,重新打印旧输入和一个额外的逗号,然后提示输入新内容。

问题在于,它使用了ANSI.SYS 行跳转序列\x1b[1A 的标准,这意味着这不一定适用于任何地方。我尝试在 cpp.sh 中使用它, 没有 工作 (http://cpp.sh/63ggd),但是当我在 linux 下编译它时它工作我目前正在使用。

如果您对它足够信任,那就去做吧,也许可以使用 winapi 为 windows 扩展它,请参阅 How To Use SetConsoleCursorPosition Func

(基本的潜在问题是基本的控制台序列来自于计算机输出物理打印出来的时间,所以在当时跳回没有意义,虽然你确实可以在开始时跳转当前行。控制台序列从那时起就从未正式扩展过,只有额外的标准来做这样的技巧。)