高分求解c++二进制读取文件,怎样连续读取?

2024-12-01 20:46:07
推荐回答(1个)
回答1:

#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
;// 处理

}