我的代码从stdin
读取到char*
。是否可以直接在std::string
?
int size = std::atoi(m_content_size);
char* buffer;
buffer = (char*)malloc(size);
fread(buffer, 1, size, stdin);
...
free(buffer);
我想我可以做std::string sBuffer(buffer)
,但我希望有更好的选择。
谢谢。
答案 0 :(得分:3)
你应该阅读一个字符向量左右,只是为了不给你一个印象,如果你真的有任意二进制数据你有“文本”:
#include <iostream>
#include <vector>
// ...
std::vector<char> buf(size);
std::cin.read(buf.data(), buf.size());
// all done, will clean up after itself!
答案 1 :(得分:2)
int size = std::atoi(m_content_size);
std::string buffer(size);
fread(&buffer[0], 1, size, stdin);
虽然您可以使用cin
(以及更合适的容器,如果它不是字符串而只是原始二进制数据)