WHERE
我在上面的评论中留下了我的问题。我想我缺少了一些东西,导致它无法完全运行,并且由于某种原因,它给了我0值。
答案 0 :(得分:2)
您的代码中存在一些问题,主要的问题是在初始化之前使用feet
的值。这是未定义的行为,需要首先解决。
我想你想要一些类似的东西
#include <iostream>
#include <string>
int main()
{
const double conversion = 3.281;
std::string unit;
double value;
std::cout << "What's you current unit?" ;
std::cin >> unit;
std::cout << "Enter a number: ";
std::cin >> value;
if (unit == "feet") {
std::cout << value / conversion << " meters";
} else {
std::cout << value * conversion << " feet";
}
}
我更改了:
using namespace std;
is considered bad pratice。我个人只是看不到使用它的好处。 value == feet
是value
而float
是feet
时,您有string
,但是这两种类型没有operator==
。if
情况下,大多数代码是相同的,因此可以将其移到外部。conversion
是不正确的。 ...我几乎忘记了#include <string>
;)
答案 1 :(得分:1)
#include <iostream>
#include <string>
using namespace std;
int main() {
string conversion;
float value;
cout << "What's you current unit?\n";
cin >> conversion;
for (auto& c : conversion)
c = tolower(c);
if (conversion == "feet") {
cout << "Enter a number: ";
cin >> value;
value = value / 3.281;
cout << value << " meters";
}
else {
cout << "Enter a number: ";
cin >> value;
value = value*3.281;
cout << value << " feet";
}
system("pause");
return 0;
}
如果您需要帮助来理解代码,请提出评论。