小编Oli*_*kal的帖子

ifstream 运算符 >> 和 get() 方法有什么区别?

最近,我在读取二进制文件时使用了该>>运算符,但在某些情况下它只会跳过一个字节。查找代码中的错误位置给我带来了很多问题,但最终我设法用该get()方法修复了这个问题,但我仍然不知道为什么>>时不时地跳过字节。

目标是将文件中的第一个字节加载到m_Value,即uint8_t

代码>>

bool CByte :: load ( ifstream & fin)
{
    if(! ( fin >> m_Value ) ) return false;
    return true;
} 
Run Code Online (Sandbox Code Playgroud)

代码get()

bool CByte :: load ( ifstream & fin)
{
    char c = 0;
    if(! ( fin . get ( c ) ) ) return false;
    m_Value = static_cast <uint8_t> (c);
    return true;
}
Run Code Online (Sandbox Code Playgroud)

c++ fstream binaryfiles ifstream

0
推荐指数
1
解决办法
281
查看次数

标签 统计

binaryfiles ×1

c++ ×1

fstream ×1

ifstream ×1