vector<data> getList = readContent();
string output = "";
ostringstream conv;
istringstream is;
output += "s: 200 OK\nThe list of records in the book:\n";
for(int j = 0; j < getList.size(); j++)
{
conv << getList[j].record;
output += conv.str();
output += " ";
output += getList[j].fName;
output += " ";
output += getList[j].lName;
output += " ";
output += getList[j].phoneNum;
output += " \n";
conv.str("");
}
send(s, (char *)output.c_str(), strlen((char *)output.c_str()), 0);
readContent()返回一个包含从文件中读取的所有数据的向量。 这是打印向量中的所有内容。但是,我无法弄清楚如何以特定方式格式化矢量中的每个事物:
记录从左侧开始0个空格
fName 从左侧开始10个空格
lName 在fName后面的空格后立即启动
phoneNum 从左侧开始30个空格
全部在一行。这是一个图片示例(可以在此线程编辑器上格式化...)
http://i.imgur.com/bbAlDWX.png
我知道这可以使用setw()完成,但只有当你通过使用&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;运营商(或者我错了?)。它需要采用字符串形式,以便通过套接字将其发送给客户端。
有谁知道我能做什么?
答案 0 :(得分:2)
#include <iomanip>
并使用其所有工具。
如果您string
并使用cout
#include <sstream>
输出相同的方式构建stringstreams
stringstream ss;
ss << //do stuff the same way you'd cout
return ss.str(); //or whatever you need to do with the built string