如何在 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::coutstd::cin 是内部耦合的,因此您无需在此处刷新。 @JanNilsFerner 当然。【参考方案2】:

对于ab这两个变量,可以这样写代码,

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++ 中的同一行中获取多个输入?的主要内容,如果未能解决你的问题,请参考以下文章

如何使通过公共相关 ID 链接的变量显示在 Splunk 表的同一行上?

如何在控制台的同一行上对齐我的项目?

在 Python 中的同一行上打印多个

如何以编程方式在eclipse中的同一行上制作两个按钮?

如何从jQuery中的同一行中选择不同的单元格?

如何在 SwiftUI 的同一行中使用粗体和普通文本