将二进制文件读取到“unsigned char”向量时,模板参数是什么?

时间:2014-05-06 22:59:37

标签: c++ vector unsigned-char istream-iterator

这段代码有什么问题?

std::vector<unsigned char> newVector;
std::ifstream inFile(fullPath.c_str(), std::ios::in|std::ios::binary);
std::istreambuf_iterator iterator(inFile);

它给了我这个:

missing template arguments before 'iterator'

如果我改成它:

std::istreambuf_iterator<unsigned char> iterator(inFile);

抱怨这个:

invalid conversion from 'void*' to 
    'std::istreambuf_iterator<unsigned char>::streambuf_type

1 个答案:

答案 0 :(得分:3)

ifstreambasic_ifstream<char>,而不是basic_ifstream<unsigned char>。因此,您需要将iterator声明为

std::istreambuf_iterator<char> iterator(inFile);

它会起作用。