Как ввести 2 символа в одной команде в С++

int main()
{
 long long x,y,z,result;
 char f,g;
 cin >>x>>y>>z;
 **result** = 
 cout << result ;
 return 0;
}

Как сделать результат = x (+ или - или/или *) y (+ или - или/или *) z!?

2 ответа

Чтение операторов между числами прост:

long long x,y,z;
char f,g;
cin >>x>>f>>y>>g>>z;
// See what you've got
cout << x << " " << f << endl;
cout << y << " " << g << endl;
cout << z endl;

Однако выяснение результата операции сложнее: вам нужно проверить значения, которые у вас есть в f и g, и выполнить операции по мере необходимости. Обратите внимание, что между вашими номерами и операторами не должно быть пробелов, иначе вход будет обработан неправильно.

Demo.

Это, вероятно, лежит в основе упражнения, которое вы решаете, поэтому я предлагаю вам написать такую функцию:

long long compute(long long a, long long b, char op) {
 ... // Check the operator, and return the result
}

С помощью этой функции вы можете получить результат одним простым вызовом:

long long result = compute(compute(x, y, f), z, g);

Когда вы пишете функцию compute, это должно дать результат, который вы ожидаете.


Вы можете сделать cin >> astring. И разделите строку на разделитель и преобразуйте их в целое.

Например: 1,2,3 станут "1", "2", "3".

licensed under cc by-sa 3.0 with attribution.