我正在尝试读取二进制文件,而我正在使用f_in.read((char(*) &tmp, sizeof(tmp))
函数。但是,每次调用此函数时,它都会继续从上一个读取函数停止的位置读取文件。是否可以在每次调用时从文件的开头开始读取函数?
打开pixmap.bin文件:
int main(){
ifstream f_in;
f_in.open("Pixmap.bin", ios::binary);
if (f_in.fail()) {
cerr<<"Error while opening the file pixmap.bin"<<endl;
f_in.close();
exit(EXIT_FAILURE);
}
我想要使用的函数每次从头开始读取:
void Read_Dimensions(ifstream &f_in, int Dimensions[2]) {
uint tmp(0);
for(int i=0; i<2;i++) {
f_in.read((char*) &tmp, sizeof(tmp));
Dimensions[i]=tmp;
}
}
答案 0 :(得分:1)
这是相对于文件指针,请尝试在“文件指针”部分阅读此页面: http://www.eecs.umich.edu/courses/eecs380/HANDOUTS/cppBinaryFileIO-2.html
这里的例子是:
int main()
{
int x;
streampos pos;
ifstream infile;
infile.open("silly.dat", ios::binary | ios::in);
infile.seekp(243, ios::beg); // move 243 bytes into the file
infile.read(&x, sizeof(x));
pos = infile.tellg();
cout << "The file pointer is now at location " << pos << endl;
infile.seekp(0,ios::end); // seek to the end of the file
infile.seekp(-10, ios::cur); // back up 10 bytes
infile.close();
}
希望能帮到你。