2013-01-19 31 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