#include
#include
using namespace std;
int main()
{
ifstream in;
in.open("book.dat",ios_base::in|ios_base::binary);
char c;
while(1)
{
in >> c; // 读取
if( in.eof() )
break;//说李态明上次读取无效
cout << c;/哗扰凳/有效,
}
// 下面这段代码会多输出一次c, 就是因为已经到文件尾了eof也不会返回真
/*while( !in.eof() )
{
in >> c;
cout << c;
}*/
}
或者这么读
#include
#include
using namespace std;
int main()
{
ifstream in;
in.open("book.dat",ios_base::in|ios_base::binary);
char buffer[4]; // 假如二进制文件全是乱旅4字节数据; 那么每次读一个4字节块
int nRead;
while( nRead = in.read(buffer, sizeof(buffer)).gcount() )
if( sizeof(buffer) != nRead )
{
cout << "incorrect length" << endl;
break;
}
else
;// 处理
}