将字符串和 int 添加到字符串中

adding a string and int to a string

本文关键字:字符串 添加 int      更新时间:2023-10-16

可能的重复项:
将 int 附加到 std::string

我想在我的字符串中添加字符串和 int。

在我的位置数据::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;
}

您正在向字符指针添加一个整数,该整数将指针按所述数字前进。使用std::stringstream执行此操作,而不是进行各种转换。像这样:

std::stringstream ss;
ss << "Sun Type: " << getSunType() << "nNo Of Earth Like Planets: "<<getNoOfEarthLikePlanets();
std::string s = ss.str();

使用 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;
}

输出"嗨 40bye",如预期的那样。

另请参阅此问题。