2
此問題與Loading a file into a vector非常相似;然而,在這種情況下,我想將它加載到一個無符號字符的向量中。將文件加載到一個向量中<unsigned char>
使用另一個問題的代碼,加載無符號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));
}
我得到做以下編譯錯誤時:從 '無符號字符*' 無效轉換到 '的std :: basic_istream :: char_type * {又名字符*}' –
2012-04-17 14:39:11
@MachoMatt在您的讀取函數的第一個參數中添加一個轉換:'reinterpret_cast(&vec.front())' –
2012-04-17 14:44:33
接受@ benjamin-lindley的評論。接受的答案和評論都是必需的。 – 2012-04-17 14:54:59