-2

我将如何将带有 MySQL C++ 连接器的标准 SELECT 的 while 循环的所有输出放入带有分隔符的字符串中以分隔输出?我对 C++ 很陌生,因此对此还没有学到很多东西。

我目前正在使用 Visual Studio 2012 来编码和编译我的项目。

编辑:这是我在 Barmar 发表评论后尝试过的:

#include <vector>
vector<string> dbOutput;
while(res->next()){
dbOutput.push_back(res->getBlob("testcolumn"));
}

但我收到错误“没有重载函数的实例”std::vector<_Ty,_Alloc>::push_back[with _Ty=std::string, _Alloc=std::allocator]”与参数列表匹配... ”。

4

1 回答 1

1

res->getBlob("testcolumn")返回一个类型的对象std::istream*,但vector<string>::push_back()只接受一个字符串作为参数(根据vector<string>定义)。

您需要将数据从 中提取stream到 中string,然后将其推string送到您的vector. 例如:

vector<string> dbOutput;
std::istream *blob = res->getBlob("testcolumn");
std::string blobString = "";
std::string buffer;
while (!blob->eof()){
    *blob >> buffer;
    blobString += buffer;
}
dbOutput.push_back(blobString);
于 2013-05-17T09:58:02.730 回答