Решил сделать калькулятор (да, крайне странный), попрактиковаться в написании кода. Вот сам код:
#include <iostream>
#include <cmath>
#include <string>
using namespace std;
int main()
{
setlocale(LC_ALL, "russian");
char op;
string answer;
double x1 = 0, x2 = 0, Xr = 0;
cout << "Введите два числа" << endl;;
cout << "X[1] = "; cin >> x1;
cout << "X[2] = "; cin >> x2;
cout << "Выберите операцию(+,-,*,/,%): "; cin >> op;
if (op == '+') {
Xr = x1 + x2;
cout << "Результат: " << Xr;
}
else if (op == '-') {
cout << "Желаете получить отрицательное число? ";
cin >> answer;
getline(cin, answer);
if (answer == "Да" || answer == "да" || answer == "Yes" || answer == "yes" || answer == "y")
{
if (x1 < x2) {
Xr = x1 - x2;
}
else if (x1 > x2) {
Xr = x2 - x1;
}
else {
Xr = x1 - x2;
}
cout << "Результат: " << Xr << endl;
}
else if (answer == "Нет" || answer == "нет" || answer == "No" || answer == "no" || answer == "n")
{
if (x1 < x2) {
Xr = x2 - x1;
}
else if (x1 > x2) {
Xr = x1 - x2;
}
else {
Xr = x1 - x2;
}
cout << "Результат: " << Xr << endl;
}
}
else if (op == '*') {
Xr = x1 * x2;
cout << "Результат: " << Xr;
}
else if (op == '/') {
cout << "Делить меньшее на большее число(Без остатка)? ";
cin >> answer;
getline(cin, answer);
if (answer == "Да" || answer == "да" || answer == "Yes" || answer == "yes" || answer == "y") {
if (x1 < x2) {
Xr = x1 / x2;
}
}
else if (answer == "Нет" || answer == "нет" || answer == "No" || answer == "no" || answer == "n") {
if (x1 < x2) {
Xr = x2 / x1;
}
cout << "Результат: " << Xr << endl;
}
}
else if (op == '%') {
cout << "Делить меньшее на большее число(С остатком)? ";
cin >> answer;
getline(cin, answer);
if (answer == "Да" || answer == "да" || answer == "Yes" || answer == "yes" || answer == "y") {
if (x1 < x2) {
Xr = fmod(x1, x2);
}
cout << "Результат: " << Xr << endl;
}
else if (answer == "Нет" || answer == "нет" || answer == "No" || answer == "no" || answer == "n") {
if (x1 < x2) {
Xr = fmod(x2, x1);
}
cout << "Результат: " << Xr << endl;
}
}
return 0;
}
Проблема в том, что переменная answer не считывает ответ, а консоль выдаёт пустую строку и завершает работу. Пробовал читать документацию по работе с string и char, искал ответы на похожие проблемы, но так и не понял, как решить именно свою проблему. Поэтому пишу здесь, дабы хоть кто-нибудь помог дураку.