在同一行输入CIN值

问题描述 投票:-2回答:2

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

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

输出应该如下所示

请输入值:1,2,3

谢谢!


我能找到的唯一答案是

cin >> value1 >> value2 >> value3

但我特别需要输出中的逗号

谢谢大家

c++ cin
2个回答
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;
}

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

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

如果你对它有足够的信任,那就去吧,也许可以使用winapi扩展它的窗口,请参阅How To Use SetConsoleCursorPosition Func

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


-1
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.