我是C ++的初学者,我写了一个简单的程序来研究C ++的语法。代码会响应,但是错误。代码是:
// converter_temp1.cpp
// converter 3 temp. celsius, fahrenheit e kelvin
// entrar: temperatura, escala atual e pretendida
#include "stdafx.h"
int main()
{
double t, tempC, tempF, tempk;
std::string sa, sp, cel, fah, kel;
std::cout << "Enter with your temperature, actual and pretend scale, for celsius = cel, fahrenheit = fah and kelvin = kel" << std::endl;
std::cin >> t >> sa >> sp;
if (sa == cel && sp == fah) {
tempF = 32 + (9 * t) / 5;
std::cout << ">>>> Temperature is " << tempF << " F in Fahrenheit!!!! <<<<" << std::endl;
}else {
if (sa == kel && sp == cel) {
tempC = t + 273;
std::cout << ">>>> Temperature is " << tempC << " C in Celsius!!!! <<<<" << std::endl;
}
else {
std::cout << ">>>> Temperature scale wrong!!!! <<<<" << std::endl;
}
}
return 0;
}
此代码的答案始终是&gt;&gt;&gt;&gt;温度刻度错!!!! &LT;&LT;&LT;&LT ;. 谁能帮助我?
谢谢!
答案 0 :(得分:4)
您永远不会为变量cel
,fah
和kel
分配值,因此,所有这些值都使用空字符串进行初始化。这就是为什么当您输入任何非空值sa
和sp
时,它们永远不会等于cel
,fah
或{{ 1}},你最终进入kel
分支。