将文件加载到向量<unsigned char>中

Mac*_*att 2 c++ iostream

这个问题非常类似于将文件加载到矢量中 ; 但是,在这种情况下,我想将其加载到unsigned chars的向量中.

使用其他问题的代码,加载unsigned char向量的最佳方法是什么?

std::vector<char> vec;  // Would like this to be std::vector<unsigned char> vec;
std::ifstream file;
file.exceptions(
    std::ifstream::badbit
  | std::ifstream::failbit
  | std::ifstream::eofbit);
file.open("test.txt");
file.seekg(0, std::ios::end);
std::streampos length(file.tellg());
if (length) {
    file.seekg(0, std::ios::beg);
    vec.resize(static_cast<std::size_t>(length));
    file.read(&vec.front(), static_cast<std::size_t>(length));
}
Run Code Online (Sandbox Code Playgroud)

And*_*nck 5

更改std::vector<char> vec;std::vector<unsigned char> vec;

  • @MachoMatt向你的read函数调用的第一个参数添加一个强制转换:`reinterpret_cast <char*>(&vec.front())` (4认同)