2013-01-19 69 views
0

代碼非常簡單。C++(VS2012)stdio:如果該字節爲09h,則無法讀取單字節文件

unsigned char a_byte; 
ifstream a_file("C:/file.bin", ios_base::binary); 
if (a_file.is_open() && a_file.good()) 
{ 
    a_file.seekg(0); 
    a_file >> a_byte; 
    a_file.close(); 
} 

的問題是,它不會從一個字節的文件中讀取09H - 我只是得到零在a_byte變種。它確實適用於不同的值。什麼原因?

回答

7

流類'operator>>將在讀入目標變量之前跳過空格。這裏的char值09h是TAB,它被計爲空白並跳過。

如果要讀取每個字符,請嘗試使用get函數。

+0

這是正確的。謝謝! – Yegor