having Trouble with this..
I want to overwrite the Name inside the Text file with the Name i input but what is happening it is only adding the Name to the End of the Text File. And its still Reading in the Old Name not the new one
Code:
include <iostream>
#include<sstream>
#include<fstream>
#include <iostream>
#include <cstdlib>
#include <iomanip>
using namespace std;
struct Newpassenger
{
int seat_number;
char name[20];
char onward[3];
};
int main()
{
int i;
if (choice == 2 ) // Update Record..
{
{
fstream Airline ("AirLine.text", ios::out | ios::in | ios::app | ios::binary);
if(!Airline)
{
cout << "File Could not be opened." << endl;
system("PAUSE");
exit (1);
}
cout << "Enter Seat Number to Update"
<<"(1 to 100, 0 to end )?";
Newpassenger passenger;
cin >> passenger.seat_number;
while (passenger.seat_number > 0 && passenger.seat_number <=100)
{
Airline.seekg((passenger.seat_number - 1 ) * sizeof(Newpassenger),ios::beg);
Airline.read(reinterpret_cast<char *>(&passenger), sizeof(Newpassenger));
cout << " Found Record. Now Enter New Name:";
cin >> passenger.name;
Airline.seekp((passenger.seat_number - 1 ) * sizeof(Newpassenger), ios::beg);
Airline.write(reinterpret_cast<const char *>(&passenger), sizeof (Newpassenger));
cout << "\nEnter Seat Number: ?";
cin >> passenger.seat_number;
}
Airline.close();
cout << endl;
}
}
if (choice == 4 ) //Read a Seat Number..
{
fstream Airline ("AirLine.text",ios::in |ios::binary);
if(!Airline)
{
cout << "File Could not be opened." << endl;
system("PAUSE");
exit (1);
}
cout << "Enter Seat number to Print "
<< "(1 to 100, 0 to end)? ";
Newpassenger passenger;
cin >> passenger.seat_number;
while (passenger.seat_number > 0 && passenger.seat_number <=100)
{
Airline.seekg((passenger.seat_number - 1) * sizeof(Newpassenger));
Airline.read(reinterpret_cast<char *>(&passenger), sizeof(Newpassenger));
if (passenger.seat_number !=0)
cout << passenger.name << " \n "
<< passenger.onward << " ";
else
cout << " No record for that Seat Number.\n";
cout << "\nEnter Seat Number: ?";
cin >> passenger.seat_number;
}
cout << endl;
Airline.close();
}