4

我正在尝试std::vector<char>使用以下方法将 a 转换为字符串:

//  Data has been received, update the buffer...
buffer = readBuffer.data();
buffer[bytesRead-1] = '\0';

我遇到的问题是,当我调试 readBuffer 我得到"<A HREF="https://www.google.com/">here</A>."

但在审查缓冲区时我得到'<A HREF="https://ww ²²²²▌▌╫$Ö►¬∟☺.google.com/">here</A>.'

我真的错过了什么吗?

4

2 回答 2

17

在字符向量的末尾写一个空字符不会神奇地创建一个std::string. 要创建实际的std::string,请使用以下内容:

std::string s = std::string(readBuffer.begin(), readBuffer.end());

您不需要将空字符显式附加到字符串,std::string构造函数会为您完成。

于 2013-11-05T23:05:38.597 回答
0

你可以像这样从向量构造一个字符串:

std::string str(readBuffer.begin(), readBuffer.end());
于 2016-10-26T08:15:02.730 回答