读书人

问一问有关于文件操作解决办法

发布时间: 2012-05-21 18:04:41 作者: rapoo

问一问有关于文件操作
这是一个逐字节比较俩文件差异的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试试
[解决办法]
应该正确的最后一行是什么

读书人网 >C++

热点推荐