#include <iostream>
#include <cstdlib>
#include <ctime>
#include <fstream>
using namespace std;
int main()
{
srand(time(0));
const int array_size=10,n=10;
int i,j,k;
fstream io("io.dat", ios_base::binary);
float a[array_size];
for (i=0;i<n;i++) {
cout<<"Inputting "<<i+1<<" array:\n";
for (j=0;j<array_size;j++) {
a[j]=(float)rand()/(RAND_MAX+1)*200-100;
cout<<i+1<<"["<<j<<"]="<<a[j]<<endl;
}
io.write((char *)&a,sizeof(a));
}
io.close();
io.open("io.dat", ios_base::binary);
j=1;
while (!io.eof()) {
cout<<"Reading "<<j<<" array:"<<endl;
io.read((char *)&a,sizeof(a));
for (i=0,k=0;i<array_size;i++) {
cout<<j<<"["<<i<<"]="<<a[i]<<endl;
if (a[i]<0) k++;
}
cout<<"Number of negative elements in "<<j++<<" array="<<k<<endl;
}
return 0;
}
I am stuck in reading arrays from binary file. The problem is that condition of breaking reading cycle doesn't even works. Program reads the same array again and again.