Мое утверждение if-else не работает, у кого-нибудь есть идеи?
Итак, я создал это простое консольное приложение преобразования Фаренгейта-Цельсия с использованием C ++. Программа использует простое выражение if-else, чтобы определить, какое преобразование они хотят: по Фаренгейту-Цельсию или Цельсию-Фаренгейту.
Код в настоящее время не работает, однако, он мгновенно преобразует Цельсия-Фаренгейта и полностью игнорируетstd::cin
Я положил, чтобы захватить пользовательский ввод. Вместо этого они вводят значение 0 каждый раз, когда я запускаю программу.
#include<iostream>
using namespace std;
int main() {
unsigned short int fahrenheit{}, celsius{};
char unit;
cout << "Choose what unit you want to start with" << endl;
cin >> unit;
if (unit == 'c') {
cout << "Enter the temperature in Celsius : " << endl;
cin >> celsius;
fahrenheit = (celsius * 9.0) / 5.0 + 32;
cout << "The temperature in Fahrenheit : " << fahrenheit << endl;
} else {
cout << "Enter the temperature in Fahrenheit : " << endl;
cin >> fahrenheit;
fahrenheit = (celsius * 9.0) / 5.0 + 32;
cout << "The temperature in Celcius : " << celsius << endl;
}
std::cin.clear(); // reset any error flags
std::cin.ignore(std::numeric_limits<std::streamsize>::max(), '\n'); // ignore any characters in the input buffer until we find an enter character
std::cin.get(); // get one more char from the user
return 0;
}