我使用節省10萬個整數二進制文件:C++讀取二進制文件的整數,丟失了一些數據
for(unsigned int i = 0; i < 100000; i++){
temp = generateRand(99999);
file.write(reinterpret_cast<const char*>(&temp),sizeof(temp));
}
,並從該文件,我想讀整數,並將它們保存到一個載體。
ifstream ifile;
ifile.open("test.bin",ios::binary);
ifile.seekg(0, ifile.end);
long size = ifile.tellg();
ifile.seekg(0, ifile.beg);
int restore = 0;
int count = 0;
while(ifile.tellg() < size){
ifile.read(reinterpret_cast<char*>(&restore), sizeof(restore));
v.push_back(restore);
count++;
}
但是好像我只能讀99328點的整數,而不是100000我與讀取較新的/二進制文件,因此你們能幫助我嗎?
'temp'的類型是什麼?你得到的文件大小是多少?你如何定義/打開'file'和'ifile'? – Ap31
哦,temp是int類型的。 generateRand函數只是產生隨機整數。 –
在閱讀之前關閉或摧毀'file'嗎? – Ap31