C++ 字符串格式化

最近遇到一个问题,需要将字符串按格式拼接发送给服务端,然后获取结果,网上查找一些资料后发现sprintfstringstream能满足我的需求,其中sprintfC的函数,stringstreamC++的函数,这里记录一下使用过程。

示例

需要将三维坐标点按照固定格式变成字符串,然后再发送给服务端。

  • sprintf
std::string data;
for (auto p = coord.begin(); p != coord.end(); ++p) {
    char buffer[50];
    int n = sprintf(buffer, "p %lf %lf %lf
", (*p).x(), (*p).y(), (*p).z());  
    std::string tmp = buffer;
    data += tmp;
}

  • stringstream
#include <sstream>
std::string data;
std::stringstream ss;
for (auto p = coord.begin(); p != coord.end(); ++p) {
    ss << "p " << (*p).x() << " " << (*p).y() << " " << (*p).z() << "
";   
}

data = ss.str();

参考链接

C++字符串格式化的几种方式

c++ stringstream(老好用了)

原文地址:https://www.cnblogs.com/xiaxuexiaoab/p/14949092.html