问一问有关于文件操作
这是一个逐字节比较俩文件差异的C++程序,但是最后一行的输出总是不正确。
- C/C++ code
#include<iostream>#include<fstream>using namespace std;int main(){ unsigned char a,b;ifstream file1,file2;file1.open("1",ifstream::binary);file2.open("2",ifstream::binary);while(!file1.eof()&&!file2.eof()) { file1>>a; file2>>b; if(a!=b) cout<<"location:"<<hex<<showbase<<static_cast<int>(file1.tellg())-1<<":file1="<<static_cast<int>(a)<<" "<<"file2="<<static_cast<int>(b)<<endl;} file1.close();file2.close();return 0;}请问这个程序究竟哪里错了。编译环境是Fedora 16,内核为3.3.0-4.fc16.i686.PAE,编译器是gcc (GCC) 4.6.3 20120306 (Red Hat 4.6.3-2)
[解决办法]
什么样子的错误?本人在windows下用VS 2005编译器可以,没问题
[解决办法]
既然用二进制打开,就不要用输入输出符,用get或者read试试
[解决办法]
不要用unsigned char,用char试试
[解决办法]
应该正确的最后一行是什么