私は C++ を学習しており、バイナリ モードでファイルを読み取る必要があります。これが私のやり方です(C++リファレンスに従って):
unsigned values[255];
unsigned total;
ifstream in ("test.txt", ifstream::binary);
while(in.good()){
unsigned val = in.get();
if(in.good()){
values[val]++;
total++;
cout << val <<endl;
}
}
in.close();
だから、私はバイトごとにファイルバイトを読んでいますin.good()
。何が起こっているのかを理解するためにcout
、最後にいくつかを追加しました。出力は次のとおりです。while
marco@iceland:~/workspace/huffman$ ./main
97
97
97
97
10
98
98
10
99
99
99
99
10
100
100
10
101
101
10
221497852
marco@iceland:~/workspace/huffman$
さて、入力ファイル「test.txt」は次のとおりです。
aaaa
bb
cccc
dd
ee
そのため、221497852 がある最後まですべてが完全に機能します。ファイルの終わりに関するものだと思いますが、問題を理解できません。
Debian マシン (64 ビット) で gedit & g++ を使用しています。ヘルプヘルプをいただければ幸いです。
どうもありがとう、
マルコ