2014-05-02 27 views
0

我想使用下面的代碼從文件中讀取uint32_t整數。 ifstream只接受一個指向char數組的指針。是否有另一種方法使用類似於下面的代碼來讀取uint32_t值?從文件中讀取uint32_t值

int readCount; 
uint32_t buffer[SIZE]; 
while (fin.read(&buffer[0], SIZE) 
     || (readCount = fin.gcount()) != 0) { 
    // some code 
} 

回答

1

使用的鑄造,例如:

if (fin.read(reinterpret_cast<char *>(buffer), sizeof buffer) && 
    fin.gcount() == sizeof buffer) 
{ 
    // use buf 
} 

+0

它給我(口譯任何對象作爲字符數組被明確地允許,精確地說的I/O的目的。)錯誤:從uint32_t無效靜態投射 – Bob

+1

@Bob:是的,對不起,它應該是'reinterpret_cast'。 –

+0

@Bob:如果最終得到的部分讀數與您在代碼中指明的一樣,則必須自己完成分配,以確定您可以讀取的整數數量...... –