我收到一个错误,“.exe访问违规读取位置”中的(msvcr100d.dll)未处理的异常“在以下程序中
问题描述:
#include<iostream>
#include<conio.h>
#include<fstream>
#include<process.h>
#include<string>
using namespace std;
class bus
{
private:
int busno,seat_no;
string driver_name,destination,start_station,arrival_time,departure_time;
public:
bus()
{
busno=0;
seat_no=0;
driver_name="";
destination="";
start_station="";
arrival_time="";
departure_time="";
}
void get_bus_info()
{
cout<<"Enter busno : ";
cin >> busno;
cout<<"Enter Driver name : ";
cin>>driver_name;
cout<<"From : ";
cin>>start_station;
cout<<"To : ";
cin>>destination;
cout<<"Enter arrival time : ";
cin>>arrival_time;
cout<<"Enter departure time : ";
cin>>departure_time;
cout<<"Enter Total no of seats : ";
cin>>seat_no;
}
int getbusno()
{
return busno;
}
void display()
{
cout<<busno<<"\t"<<driver_name<<"\t"<<start_station<<"\t"<<destination<<"\t"<<arrival_time<<"\t"<<departure_time<<"\t"<<seat_no<<"\t"<<endl;
}
};
class bus_reservation_user
{
public:
void do_reservation()
{
cout<<"do bus info ";
}
void check_bus_availability()
{
cout<<"check bus info ";
}
void cancel_reservation()
{
cout<<"cancel bus info ";
}
};
class bus_reservation_admin:public bus_reservation_user
{
private:
char username[25];
char password[5];
public:
void add_bus_info(int i)
{
bus b;
if(i==1)
{
ofstream ofile;
ofile.open("bus_reservation.dat",ios::binary|ios::app);
b.get_bus_info();
ofile.write(reinterpret_cast<char*>(&b), sizeof(b));
ofile.close();
cout<<"Bus information added sucessfully!!!!"<<endl;
}
else if(i==3)
{
cout<<"Bus no\tDriver name\tFrom\tTo\tarrival time\tdeparture time\tTotal no of seats"<<endl;
ifstream ifile;
ifile.seekg(1,ios::beg);
ifile.open("bus_reservation.dat",ios::binary|ios::in);
while(ifile.read(reinterpret_cast<char*>(&b), sizeof(b)))
{
//ifile.read(reinterpret_cast<char*>(&b), sizeof(b));
b.display();
}
ifile.close();
}
}
void delete_bus_info()
{
cout<<"delete bus info ";
}
void check_username_password();
void display_all_bus_info()
{
cout<<"Bus no\tDriver name\tFrom\tTo\tarrival time\tdeparture time\tTotal no of seats"<<endl;
bus b1;
ifstream ifile;
ifile.seekg(1,ios::beg);
ifile.open("bus_reservation.dat",ios::binary|ios::in);
while(ifile.read(reinterpret_cast<char*>(&b1), sizeof(b1)))
{
//ifile.read(reinterpret_cast<char*>(&b), sizeof(b));
b1.display();
}
ifile.close();
}
};
void bus_reservation_admin::check_username_password()
{
char c[]="admin";
cout<<"Enter username ";
cin>>username;
cout<<"Enter Password ";
for(int i=0;i<5;i++)
{
password[i]=getch();
cout<<"*";
}
int a=0;
for(int j=0;j<5;j++)
{
if(password[j]==c[j])
{
a+=1;
}
}
int opt;
cout<<endl;
if(strcmp(username,"admin")==0 && a==5)
{
cout<<"1.Add new bus information"<<endl;
cout<<"2.Delete Bus information"<<endl;
cout<<"3.Display all bus information"<<endl;
cout<<"4.Exit"<<endl;
cout<<"Enter option ";
cin>>opt;
switch(opt)
{
case 1:
add_bus_info(1);
break;
case 2:
delete_bus_info();
break;
case 3:
add_bus_info(3);
//display_all_bus_info();
break;
case 4:
exit(1);
break;
default:
cout<<"Sorry wrong option!!!!!!!!!!!!!!!!";
break;
}
}
else
{
cout<<"Wrong password or username;";
}
};
void main()
{
cout<<"-------------------BUS RESERVATION SYSTEM--------------"<<endl;
cout<<"Name : LIKHITA ASHOK KADAM (A-12)"<<endl;
cout<<" SHRUTIKA SANJIVAN DESHMUKH (A-07)"<<endl;
cout<<"Project Guide : "<<endl;
int option;
cout<<"1.Admin"<<endl;
cout<<"2.Bus reservation"<<endl;
cout<<"3.Exit"<<endl;
cout<<"Enter option ";
cin>>option;
bus_reservation_admin bsr;
switch(option)
{
case 1:
bsr.check_username_password();
break;
case 2:
bsr.do_reservation();
break;
case 3:
exit(1);
break;
default:
cout<<"Sorry Wrong input";
break;
}
getch();
}
答
我认为此行中出现此错误ifile.open(bus_reservation.dat,ios: :binary | ios :: in)
因为您可能无法充分访问该文件夹或文件或路径
尝试使用visual studio 2010我已经检查了你的代码它工作正常
I think this error is occuring in this line ifile.open("bus_reservation.dat",ios::binary|ios::in)
because you may not having sufficient access to that folder or file or path
try with visual studio 2010 i have checked your code it is working fine