如何在 C++ 中的同一行中获取多个输入?
Posted
技术标签:
【中文标题】如何在 C++ 中的同一行中获取多个输入?【英文标题】:How to take multiple inputs in the same line in C++? 【发布时间】:2016-09-16 04:39:12 【问题描述】:我正在开发一个程序,但现在我遇到了一个问题,问题是我想输入两个数字,但光标在同一行。每当我输入任何数字并按回车键时,它都会移动到下一行,但我希望它在同一行。如何在同一行中获取多个输入?
【问题讨论】:
控制台/终端不能那样工作。您可以使用 GNU readline() 或 NCurses 来尝试绕过它。或者,您可以将 I/O 放在 GUI 中。您可能被否决了,因为这是一个常见问题,而正确答案几乎总是“不要那样做”。 【参考方案1】:您可以简单地通过级联 cin
运算符来做到这一点。如果你这样写代码:
int a,b;
cout << "Enter value of a" << endl;
cin >> a;
cout << "Enter value of b" << endl;
cin >> b;
那么程序会这样执行:
Enter value of a
10
Enter value of b
20
但是要在一行中做到这一点,你可以这样写代码:
cout << "Enter the values of a and b" << endl;
cin >> a >> b; //cascading the cin operator
现在程序执行如下:
Enter the values of a and b
10 20
如果您以这种方式输入两个值(用空格分隔它们),那么它会按照您希望的方式工作 - 位于同一行中。
另外,在第一个 sn-p 中,如果您删除 endl
关键字,您也可以将其全部放在一行中,但我认为这不是您想要的。
另见:CASCADING OF I/O OPERATORS | easyprograming。
【讨论】:
我建议使用'\n'
而不是std::endl
,因为std::cout
和std::cin
是内部耦合的,因此您无需在此处刷新。
@JanNilsFerner 当然。【参考方案2】:
对于a
和b
这两个变量,可以这样写代码,
cout << "Enter the values of a and b: ";
cin >> a >> b;
程序会如下执行,
Enter the values of a and b: 5 10
【讨论】:
【参考方案3】:cout << "Enter the values of a and b" << endl;
cin >> a >> b;
程序现在将以这种格式执行
Enter the values of a and b
10 20
【讨论】:
以上是关于如何在 C++ 中的同一行中获取多个输入?的主要内容,如果未能解决你的问题,请参考以下文章