0

コードは非常に単純です。

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();
}

問題は、1 バイトのファイルから 09h を読み取れないことです。a_byte 変数にゼロを取得するだけです。さまざまな値で機能します。どういう理由ですか?

4

1 に答える 1

7

ストリーム クラスoperator>>は、ターゲット変数に読み込む前に空白をスキップします。ここで、char 値09hは TAB であり、空白としてカウントされ、スキップされます。

すべての文字を読みたい場合は、get関数を試してください。

于 2013-01-19T16:04:10.240 に答える