C++ ifstream read()
Read by data size
#include <fstream> #include <iostream> using namespace std; #include <process.h> //for exit() const int MAX = 1000; int buff[MAX];/*from w w w .j ava 2s . co m*/ int main() { for(int j=0; j<MAX; j++) //fill buffer with data buff[j] = j; ofstream os; //create output stream //open it os.open("a:edata.dat", ios::trunc | ios::binary); if(!os) { cerr << "Could not open output file\n"; exit(1); } cout << "Writing...\n"; //write buffer to it os.write( reinterpret_cast<char*>(buff), MAX*sizeof(int) ); if(!os) { cerr << "Could not write to file\n"; exit(1); } os.close(); //must close it for(j=0; j<MAX; j++) //clear buffer buff[j] = 0; ifstream is; //create input stream is.open("a:edata.dat", ios::binary); if(!is) { cerr << "Could not open input file\n"; exit(1); } cout << "Reading...\n"; //read file is.read( reinterpret_cast<char*>(buff), MAX*sizeof(int) ); if(!is) { cerr << "Could not read from file\n"; exit(1); } for(j=0; j<MAX; j++){ if( buff[j] != j ) { cerr << "\nData is incorrect\n"; exit(1); } } cout << "Data is correct\n"; return 0; }