hi, I've problem in file handling when i instantiate object thorough fstream ... then file does not open or created... and then through exception my problem close.. #include"iostream" #include"fstream" #include"cstdlib" #include"ClientData.h" #include"iomanip" #include <stdio.h> using namespace std; void outputline(ostream&,const ClientData&); void main(){ int accountNumber; char lastName[15]; char firstName[10]; double balance; fstream outCredit; outCredit.open("credit.txt",ios::out|ios::in|ios::binary); [b]// problem is here.... file does not open...and then program will exit...[/b] if(!outCredit) { cerr<<"file could not be openened."<<endl; exit(1); } //outCredit.clear(); cout<<"Enter account number"; ClientData client; cin>>accountNumber; while(accountNumber>0 && accountNumber <=100 ) { cout<<"enter lastname, firstName and balance value"; cin>>lastName; cin>>firstName; cin>>balance; client.setAccountNumber(accountNumber); client.setLastName(lastName); client.setFirstName(firstName); client.setBalance(balance); outCredit.seekp( (client.getAccountNumber()-1) * sizeof(ClientData) ); outCredit.write(reinterpret_cast< const char * >(&client),sizeof(ClientData) ); cout<<"enter accoutn number"<<endl; cin>>accountNumber; } outCredit.close(); //ClientData obj; ifstream inCredit("credit.txt",ios::in); if(!inCredit) { cerr<<"file could not be openened."<<endl; exit(1); } inCredit.read(reinterpret_cast<char * >(&client),sizeof(ClientData) ); while(inCredit && !inCredit.eof()) { if(client.getAccountNumber()!=0) outputline(cout,client); inCredit.read(reinterpret_cast<char * >(&client),sizeof(ClientData) ); } inCredit.close(); //remove("credit.txt"); } void outputline(ostream &output,const ClientData &record) { output<<left<<setw(10)<<record.getAccountNumber() <<setw(16)<<record.getLastName() <<setw(11)<<record.getFirstName() <<setw(10)<<setprecision(2)<<right<<fixed <<showpoint<<record.getBalance()<<endl; } Code (markup):
Apparently it doesn't work when having both in and out mode if you don't have app mode. So you can either add append mode or you can remove ios::in and it will work.