2012-04-17 44 views
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)); 
} 

回答

6

變化std::vector<char> vec;std::vector<unsigned char> vec;

+0

我得到做以下編譯錯誤時:從 '無符號字符*' 無效轉換到 '的std :: basic_istream :: char_type * {又名字符*}' – 2012-04-17 14:39:11

+4

@MachoMatt在您的讀取函數的第一個參數中添加一個轉換:'reinterpret_cast (&vec.front())' – 2012-04-17 14:44:33

+0

接受@ benjamin-lindley的評論。接受的答案和評論都是必需的。 – 2012-04-17 14:54:59

相關問題