需要帮助格式化字符串输出

时间:2013-10-10 00:03:33

标签: c++

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;运营商(或者我错了?)。它需要采用字符串形式,以便通过套接字将其发送给客户端。

有谁知道我能做什么?

1 个答案:

答案 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