我是C ++的初学者,我被问到比我学到的更难的事情。
我正在尝试从二进制文件(InfoFile.dat)中读取信息并将其显示在控制台上。
程序正在读取信息并在控制台上显示它没有问题,我甚至可以继续正常使用该程序。
然而, 之后我退出程序时使用:interceptOnTouchEvent
会出现一个窗口,此错误显示:
return EXIT_SUCCESS
错误仅在我尝试从文件中读取而不是写入时显示。
仅当我使用Unhandled exception at 0x542FCCC8 (msvcp110d.dll) in pcp.exe:
0xC0000005: Access violation reading location 0x00474EB4.
或return EXIT_SUCCESS
退出程序时(不是当我从x按钮关闭控制台窗口时)
请知道我已经google了,在stackoverflow中查看了很多同样错误的问题,但没有一个帮助
代码:
显示功能:
exit(1)
是类驱动程序的对象
driverObj
显示功能
void Staff::displayDriver(){
int i=1;
ifstream fp1;
fp1.open("InfoFile.dat",ios::binary);
if(fp1.is_open()){
while(!fp1.eof())
{
fp1.read((char*)&driverObj,(sizeof(driverObj)));
cout << i << ". ";
driverObj.showDriver();
i++;
}
}
else{
cout << "File was not found!" << endl;
}
fp1.close();
}
驱动程序类
void Driver::showDriver(){
cout << "ID: " << id << " - Name: " << name << " - Zipcode: " << zipcode << " - Phone: " << phone << endl;
}
此外,视觉工作室在“xutility”中显示了这一点:
class Driver : public User {
protected:
string name;
long phone;
int id, zipcode;
Vehicle vehicle;
public:
Driver();
Driver(int,string,int ,long , Vehicle);
void showDriver();
int getID();
};