这段代码有什么问题?
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
答案 0 :(得分:3)
ifstream
是basic_ifstream<char>
,而不是basic_ifstream<unsigned char>
。因此,您需要将iterator
声明为
std::istreambuf_iterator<char> iterator(inFile);
它会起作用。