0

重複の可能性:
intをstd::stringに追加します

文字列とintを文字列に追加したいと思います。

LocationData :: toString()メソッドで、文字列strにたくさんのものを一緒に追加しようとしています。

文字列sunTypeである最初の入力を追加し、2番目の入力である整数を追加します。コンパイルに問題はありませんが、コードを実行すると、出力は次のようになります。

太陽の種類:太陽惑星のような地球の数:

それはどうあるべきか

太陽の種類:

惑星のような地球はありません:

だから私のコードに何か問題がありますか?コードがいくらか長いので、コード全体を表示しませんでした。誰かが私に感謝に答えてくれることを願っています!

#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;
}
4

2 に答える 2

3

ポインタを上記の数だけ進める文字ポインタに整数を追加しています。std::stringstreamあらゆる種類の変換を行う代わりに、これを行うために使用します。このようなもの:

std::stringstream ss;
ss << "Sun Type: " << getSunType() << "\nNo Of Earth Like Planets: "<<getNoOfEarthLikePlanets();
std::string s = ss.str();
于 2012-10-16T11:27:25.553 に答える
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;
}

予想通り、「Hi40bye」を出力します。

この質問も参照してください。

于 2012-10-16T11:32:10.193 に答える