最近遇到一个问题,需要将字符串按格式拼接发送给服务端,然后获取结果,网上查找一些资料后发现sprintf和stringstream能满足我的需求,其中sprintf
是C
的函数,stringstream
是C++
的函数,这里记录一下使用过程。
示例
需要将三维坐标点按照固定格式变成字符串,然后再发送给服务端。
- 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();