1
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() は、ファイルから読み取ったすべてのデータを含むベクトルを返します。これは、ベクトルにあるすべてを印刷しています。ただし、特定の方法でベクトル内の各ものをフォーマットする方法がわかりません。

recordは左側から 0 スペースで始まります
fNameは左側から 10 スペースで始まります
lNameはスペースの直後から始まります fName の後にある
phoneNumは左側から 30 スペースで始まります

すべて1行で。 ここに画像の例があります (このスレッド エディタではフォーマットできません...)

http://i.imgur.com/bbAlDWX.png

setw() を使用してこれを実行できることは理解していますが、それは << 演算子を使用して直接出力している場合のみです (または間違っていますか?)。ソケットを介してクライアントに送信できるように、文字列の形式にする必要があります。

私に何ができるか知っている人はいますか?

4

1 に答える 1

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
于 2013-10-10T00:04:45.410 に答える