我有一个vector<char>
我想要写入的数据std::stringstream
.
I tried:
my_ss.write(vector.data(), vector.size());
...但似乎没有投入任何内容my_ss
我声明如下:
std::stringstream my_ss( std::stringstream::binary);
为什么 write 不起作用(应用程序不会崩溃并且编译时出现 0 个错误、0 个警告)?
对于“我该怎么做”,您可以使用std::ostream_iterator
:
std::copy(vector.begin(), vector.end(), std::ostream_iterator<char>(my_ss));
完整示例:
#include <iterator>
#include <sstream>
#include <vector>
#include <iostream>
#include <algorithm>
int main() {
std::vector<char> vector(60, 'a');
std::ostringstream my_ss;
std::copy(vector.begin(), vector.end(), std::ostream_iterator<char>(my_ss));
std::cout << my_ss.str() << std::endl;
}
你也可以用它来构建一个string
直接,无需经过stringstream
at all:
std::string str(vector.begin(), vector.end()); // skip all of the copy and stringstream
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)