关于c++读写二进制文件的问题
- C/C++ code
int main(){ unsigned int num[20]; fstream file1; file1.open("1.bin",ios::in); for(int i=0;;i++)//////////////////////////这里应该怎么写判断,才能在读取完文件后自动跳出? { file1.read((char*)&num[i],sizeof(unsigned int)); file1.seekg(4); if(file1.tellp()==ios::end)break;//////////////////这个判断是错误的 } cout << num[1] <<endl; return 0;}
另外我想用vector来存读入的数
for循环应该怎么写?(不是全部读入vector中,是读一个数、跳一个数)
- C/C++ code
void ReadFile(){ fstream file1; file1.open("TotalPhenotype.bin",ios::in); vetcor<unsignet int>num; for(int i=0;;i++)//////////////怎么判断读完 { file1.read((char*)???,sizeof(unsigned int));/////问号那里怎么写? file1.seekg(4); } cout << num[1] <<endl;}
[解决办法]
void ReadFile()
{
fstream file1;
file1.open("TotalPhenotype.bin",ios::in);
vetcor<unsignet int>num(1024);//分配空间
for(int i=0;!file1.eof();i++)//////////////怎么判断读完
{
file1.read((char*)&num[i],sizeof(unsigned int));/////问号那里怎么写?
file1.seekg(4);
}
cout << num[1] <<endl;
}