3

この問題は長い間私を悩ませてきました。たとえば、コード

ifstream in;
char temp;
int a;

in.open ("Random.txt");

for (a = 0;a < 10000;a++)
    in.read (&temp, 1);

in.close ();

ifstreamが代替文字 (ASCII = 26)に遭遇するまで正常に動作します。次に、後続のすべての文字について、ifstream::readを返しtemp = -1ます。私は本当にこれが起こることを望んでいませんが、代わりにファイルから文字を読み続けたい-1. 私は何を間違えましたか?

4

1 に答える 1

9

バイナリ モードでストリームを開く必要があります。歴史的な理由から、Windows のテキスト モードは Control-Z (ASCII 26) をファイルの終わりと見なします。

この私の以前の回答には詳細があります。

于 2012-06-22T23:08:52.590 に答える