在同一行上使用CIN输入值

时间:2019-03-04 16:44:24

标签: c++ cin

例如,我试图在同一行上按回车键输入值:

1 [输入],2 [输入],3 [输入]

输出应如下所示

请输入值:1、2、3

谢谢!


我唯一能找到的答案是

cin >> value1 >> value2 >> value3

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

谢谢大家

2 个答案:

答案 0 :(得分:0)

我编写了一个程序,可以 做您想要的事情:

#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;
}

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

此问题是,它对行跳转序列\ x1b [1A使用ANSI.SYS标准,这意味着它不一定在任何地方都有效。我尝试在cpp.sh中使用它,但起作用(http://cpp.sh/63ggd),但是当我在当前使用的Linux下编译它时,它就可以工作。

如果您对此有足够的信任,请继续尝试,甚至可以使用winapi将其扩展到Windows,请参见How To Use SetConsoleCursorPosition Func

(基本的基本问题是,基本的控制台序列来自实际打印出计算机输出的时间,因此,尽管确实可以在当前的开始处进行跳转,但往后跳转没有任何意义。从那以后,控制台序列就再也没有正式扩展过,只有其他的标准可以做这样的技巧。)

答案 1 :(得分:-1)

如果要使用字符串,可以在cin中使用“ string”,因此在您的情况下为“,”。