标准的c++中int,float,double等怎么转换成string类

2025-05-01 14:00:16
推荐回答(3个)
回答1:

c++的标准作法是通过stringstream。

#include 
#include 
#include 

using namespace std;

int main(int argc, char const *argv[])
{
    stringstream ss;
    string str;
    int i = 1;
    float f = 10.1;
    double d = 100.11;

    ss << i << "," << f << "," << d << endl;
    ss >> str;
    cout << str;

    return 0;
}

运行:

1,10.1,100.11

回答2:

C++11的std::to_string


具体实现也没什么技巧,假如编译器没提供可以自己写

namespace std {
string to_string(int val) {
    char buf[20];
    sprintf(buf, "%d", val);
    return string(buf);
}

string to_string(unsigned val) {
    char buf[20];
    sprintf(buf, "%u", val);
    return string(buf);
}

string to_string(long val) {
    char buf[20];
    sprintf(buf, "%ld", val);
    return string(buf);
}

string to_string(unsigned long val) {
    char buf[20];
    sprintf(buf, "%lu", val);
    return string(buf);
}

string to_string(float val) {
    char buf[200];
    sprintf(buf, "%f", val);
    return string(buf);
}

string to_string(double val) {
    char buf[2000];
    sprintf(buf, "%f", val);
    return string(buf);
}
string to_string(long double val) {
    char buf[20000];
    sprintf(buf, "%Lf", val);
    return string(buf);
}
}

回答3:

我记得string类里有相关函数.可以完成相应转化的.