如何从cin获得可变量的输入

  • 本文关键字:变量 cin c++
  • 更新时间 :
  • 英文 :


我一直在研究一个计算器,我离它的工作很近了,但我需要找到一种方法,让用户输入的数字和运算符数量取决于用户。这是我迄今为止需要应用的一个更简单的测试版本。我省略了一些内容,但这正是我需要应用它的代码的一部分。用户应该能够输入任何数量的数字和操作数,只要每个不到20。我不想拘泥于一种僵硬的输入形式,比如cin >> numIn[n]; cin >> operator1[n],因为那样你就必须以一个操作符结束。

#include <iostream>
float numIn[20];
char operator1[20];
int main(){
int n = 0;
while (n < 20){
std::cin >> numIn[n] >> operator1[n];
switch (operator1[n]){
case '+':
std::cout << numIn[n] + numIn[n];
break;
default:
std::cout << "does not work";
}
}
}

我编辑了这个问题,使其更加集中和清晰。我在上面添加了关于我需要如何使用"流畅"的输入方式的部分。如果这不能让事情变得更清楚,我不知道会发生什么。

使用getline从用户处获取整行输入
然后使用该字符串构造一个stringstream,您可以使用>>来提取数字和单字符运算符。但现在,当您试图读取原始字符串的末尾时,会出现错误。它知道你已经完成了,因为它在开始读取之前已经提交了完整的输入,而不像一个总是打开的终端,用户总是可以键入更多。

使用std::cin >> numIn[n]std::cin >> operator1 [n]

正如@Ivan在回复中所建议的那样

最新更新