我想在字符串中添加string和int。
在我的LocationData :: toString()方法中,我试图将一堆内容添加到我的字符串 str 中。
它添加了第一个输入,它是一个字符串sunType,它添加了第二个输入,一个整数。 编译时没有问题,但是当我运行我的代码时,输出是
太阳类型:地球的太阳没有行星:
应该是
太阳类型:
地球不像行星:
我的代码有问题吗? 我没有显示我的整个代码,因为它有些冗长。希望有人能回答我,谢谢!
#include <iostream>
#include <string>
using namespace std;
class LocationData
{
private:
string sunType;
int noOfEarthLikePlanets;
int noOfEarthLikeMoons;
float aveParticulateDensity;
float avePlasmaDensity;
public:
string toString();
};
string LocationData::toString()
{
string str = "Sun Type: " + getSunType();
str += "\nNo Of Earth Like Planets: " + getNoOfEarthLikePlanets();
//str += "\nNo Of Earth Like Moons: " + getNoOfEarthLikeMoons();
//str += "\nAve Particulate Density: " + getAveParticulateDensity();
//str += "\nAve Plasma Density: " + getAvePlasmaDensity();
return str;
}
int main()
{
cout<<test.toString()<<endl;
}
答案 0 :(得分:3)
您正在向字符指针添加一个整数,该指针使指针前进所述数字。使用std::stringstream
执行此操作,而不是进行各种转换。像这样:
std::stringstream ss;
ss << "Sun Type: " << getSunType() << "\nNo Of Earth Like Planets: "<<getNoOfEarthLikePlanets();
std::string s = ss.str();
答案 1 :(得分:1)
使用stringstream的MWE:
#include <sstream>
#include <iostream>
using namespace std;
int main(){
stringstream ss;
int i=40;
ss<<"Hi ";
ss<<i;
ss<<"bye";
cout<<ss.str()<<endl;
}
按预期输出“Hi 40bye”。