您可以两次使用cin吗?

时间:2020-06-13 05:47:28

标签: c++

我正在尝试做一个计算器式的事情,以使用函数进行练习(我是初学者),并供用户使用,加,减,多。用户必须选择一种模式,即可变模式的工作,因此我使用了cin,以便用户可以输入数字。但是一旦用户选择了模式,则用户将需要输入值,但要做到这一点,我将需要再次使用cin,但是不会出现用户输入值的屏幕。我该怎么办? (这还不完整)

#include <iostream>
using namespace std;

double mode4 (double x, double y){
    double sum;
    sum = x + y;
    cout << "sum is: " << sum <<endl;
    return 0;
}

int main() {
   int *mode = new int;

cin >> *mode;
if (*mode > 4 || *mode == 0){
  *mode = 4; 
}

if (*mode == 4){
   double num1;
   double num2; 
   cin >> num1 >> num2;
    mode4(num1, num2);
    delete mode;
}

cout << *mode << endl;
    return 0;
}

2 个答案:

答案 0 :(得分:3)

您将必须在同一屏幕中输入num1和num2的值,cin不会在每次调用时都生成一个新屏幕。 这是您的计算器屏幕的外观:

0
2 3
sum is: 5
4

如果您想在新屏幕中接受下一个输入,则可以使用此answer

答案 1 :(得分:1)

不是您问题的答案,我只想提一下

int *mode = new int;

cin >> *mode;
if (*mode > 4 || *mode == 0){
    *mode = 4; 
}

不要无意使用指针,这更简单,更安全,更高效,更少键入等。

int mode;

cin >> mode;
if (mode > 4 || mode == 0){
    mode = 4; 
}

如果需要整数变量,只需声明一个。无需使用整数指针并分配整数。