我是C ++的初学者,上周开始。我正在尝试制作一个简单的程序,将英寸转换为英寸符号:例如62变成5'2“。但是当我尝试编译时,我在第8行有一些错误。我不知道它是什么。提前谢谢。
#include <iostream>
#include <sstream>
using namespace std;
string ConvertToFootInchMeasure (int totalInches){
string feet = ""+totalInches/12;
string inches = "" + totalInches%12;
stringstream converted;
conveted<<feet;
converted<<"'";
converted<<inches;
converted<<"\"";
return converted.str();
}
答案 0 :(得分:3)
该代码可以像这样轻松修复:
string ConvertToFootInchMeasure (int totalInches){
stringstream converted;
// Do inline calculations and use formatted text output for the results
converted << (totalInches/12) << "'" << (totalInches%12) << "\"";
return converted.str();
}
进一步解释:您尝试将totalInches/12
和totalInches%12
操作的数字结果连接到std::string
变量,但该语句的右侧并未执行此操作这一点。
注意:强>
std::string operator+(std::string, char c)
在您尝试使用时,不会将数字转换为字符串和连接:
string feet = ""+totalInches/12;
在你的情况下似乎更糟糕,因为术语
""+totalInches/12
为const char*
指针执行指针算术,并且string
变量从例如"" + (62/12)
初始化。指针地址{{1}}。