我正在学习 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++。任何帮助将不胜感激。
非常感谢,
马可