2

这段代码有什么问题?

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
4

1 回答 1

3

ifstream是一个basic_ifstream<char>,不是一个basic_ifstream<unsigned char>。因此,您需要声明iterator

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

它会起作用。

于 2014-05-06T23:03:16.773 回答