我开始学习C ++几天了,我一直在研究一个示例项目,我需要将字符串转换为int。我在以下代码中面临一个问题:
#include <string>
#include <stdlib.h>
string sIMX = "45250";
int IMXValue = atoi(sIMX);
int IMXDeg = IMXValue/10;
string sIMXFinal = std::to_string(IMXDeg);
strcpy(sIMX, sIMXFinal);
cout<<"String Value = "<<sIMX;
我必须将string中存在的值转换为整数...将其除以10,然后将值存储在字符串中并显示它。
错误:&#39; to_string&#39;不是&#39; std&#39;
的成员答案 0 :(得分:2)
所以我认为你希望使用c ++ 11,在这种情况下你应该这样做:
#include <string>
using namespace std;
string sIMX = "45250";
int IMXValue = stoi(sIMX);
int IMXDeg = IMXValue/10;
string sIMXFinal = to_string(IMXDeg);
cout << "String Value = " <<sIMXFinal;
如果你想要聪明:
string sIMX = "45250";
string sIMXFinal = to_string(stoi(sIMX)/10);
这是所有c ++的东西,应该让你的生活更轻松一点。您也可以使用stringstreams
。别忘了编译:
g++ -std=c++11 yourprogram.cpp -o outputname
答案 1 :(得分:1)
您的方法很古怪,因为将字符串转换为整数的推荐方法是使用字符串流
std::string number = "123456789";
std::stringstream ss(number);
int num = 0;
ss >> num;
if (ss.fail()) {
// Error
}
else {
std::cout << "The integer value is: " << num;
}
需要:<sstream>
答案 2 :(得分:0)
由于你已经使用了atoi,你可以使用itoa进行相反的转换。