Question: I need help debugging this code. This is written in C++. It compiles just fine, but when I chose the option in the menu to
I need help debugging this code. This is written in C++. It compiles just fine, but when I chose the option in the menu to read and open the file, I have a segmentation fault core dumped. It seems to not want to read the file HighTechAgency.txt
I have posted images of my code below. 




![std; void strcpy(char*, char); int strcmp(char", char"; class CarSensor char m_type[256]; float](https://s3.amazonaws.com/si.experts.images/answers/2024/08/66cc1b00380ca_28766cc1affc114a.jpg)












#include #include #include using namespace std; void strcpy(char*, char); int strcmp(char", char"; class CarSensor char m_type[256]; float m extracost; int gps cnt; int camera cnt; int lidar_cnt; int radar_cnt; void SensCon; void SensCon(char: void SensCpy(const Carsensor &initsensor: //primary get methods char GetType): float GetExtraCost( int GetGps(): int GetCam int GetLid: int GetRad; //primary set methods bool SetType(char* newtype; bool SetExtraCost(float newextracost; void GetReset int&, int&, int&, int&) bool operator=(const CarSensor& lhs, const CarSensor& rhs); void CarSensor:SensCon() strcpy(m_type, 10'); n_extracost = 0.0; void CarSensor:SensCon(char startType) strcpy(m_type, startTypel: if(startType"gps) m_extracost 5.0; else if(startType ss "camera" m_extracost 10.0 else iffstartType"lidar m_extracost 15.0 m_extracost 20.0; void Carsensor SensCpylconst Carsensor CarSensor newsensor initsensor strcpy(m_type, newsensor.m type) m_extracost newsensor.m_extracost; gps ent newsensor.gps cnt, camera_cnt newsensor camera_cnt idar cnt newsensor.lidar cnt; radar_cnt newsensor.radar_cnt; char* CarSensor::GetType //returns current value for an individual car's year return m type; float CarSensor:GetExtraCost) /return current value for an individual car's make return m extracost int CarSensor::GetGps) //returns current value for an individual car's model return gps_cnt int CarSensor::GetCam returns current value for an individual car's model return camera_cnt; int CarSensor::GetLid return lidar cnt int CarSensor::GetRad) //return current value for an individual car's availability return radar_cnt; bool CarSensor:SetType(char* newtype) strcpy(m_type, newtype; return true; bool CarSensor: SetExtraCostfloat newextracost) if(newextracost>0.0) m extracostnewextracost return true; void CarSensor::GetReset(int &gps cnt, int &camera_cnt, int &lidar_cnt, int &radar_cnt) gps cnt 0 camera_cnt 0 lidar_cnt 0 radar_cnt 0; bool operator (CarSensor& Ihs, CarSensor& rhs) if(strcmp(lhs.GetType(), rhs.GetType())0) if(lhs.GetExtraCost) rhs.GetExtraCost)) if(lhs.GetGpsrhs.GetGps0) if(lhs.GetCam()rhs.GetCam)) if(lhs.GetLid)rhs.GetLid) if(lhs.GetRad) rhs.GetRadO) return true; else return false class RentalCar private: char m_make[256]: char m model[256]: int m year; float m tank; CarSensor m sensors 3]: int msenscnt; float m baseprice; float m finalprice; bool m available char m owner[256] public: void CarCon): void CarCon(char*, char*, int, float, CarSensor, float, float, bool, char* void CarCpy(RentalCar &initcarl: //primary get methods char* GetMake() char* GetModel: int GetYear float GetTank: CarSensor GetSensors[): float GetBasePrice) float GetFinalPrice() bool GetAvailable() //primary set methods bool SetMake(char* newMake) bool SetModel(char* newModel) bool SetYearint newYear); bool SetTankfloat newTank); bool SetSens(int newSenscnt) bool SetBasePrice[float newBaseprice): bool SetAvailable(bool newAvail); bool SetOwnerchar newOwner) bool UpdatePrice void PrintCar) float EstimateCost[int); RentalCar& operator CarSensor& nsens); RentalCar& operator+char* nowner) void RentalCar:CarCon() strcpy(m_make, O' strcpylm_model, No: m_year 0; m tank 0.0; CarSensor senPtr m_sensors; //ptr to current sensor for(inti 0; 3+ senPtr->SensCon); senPtr+ m senscnt 0; m baseprice 0.0; m finalprice 0.0; m available false; strcpy(m_owner, \01; void RentalCar::CarCon(char stMake, char* stModel, int stYear, float stTank, CarSensor* stSensors, float stBprice, float stFprice, bool stAvail, char* stOwner) int i strcpy m make, stMake): strcpy m model, stModell; m yearstYear m tank stTank; CarSensor sen1Ptr m sensors CarSensor* sen2Ptr stSensors; //ptr to current sensor of initial sensors for(inti 0; 3+ sen1Ptr->SensCpy( sen2Ptr) sen1Ptr+ sen2Ptr+ m-baseprice-stBprice; m_finalprice = stfprice; mavaiable stAvail; strcpy(m_owner, stOwner); void RentalCar::CarCpy(RentalCar &initcar) int i strcpy m make, initcar.m_make) strcpy m model, initcar.m_model m year initcar.m year; m tank initcar.m tank, CarSensor* sen1Ptr= m sensors; CarSensor sen2Ptr initcar.m_sensors; //ptr to current sensor of the input RentalCar for(inti 0; 3+ sen1Ptr->SensCpy( sen2Ptr) sen1Ptr sen2Ptr+ m senscnt initcar.m_senscnt; m baseprice initcar.m baseprice m finalprice initcar.mfinalprice; m_available initcar.m available; strcpy(m owner, initcar.m_owner) char* RentalCar::GetMake() /returns current value for indv car's make return m make char* RentalCar:GetModel) //return current value for indv car's model return m model int RentalCar::GetYear) return m_year, float Rentaar:GetTank) return m_tank; CarSensor RentalCar::GetSensors) //returns curent calues for indv car's sensors return m sensors int RentalCar::GetSenscnt) return m senscnt float RentalCar::GetBasePricel) return m baseprice float RentalCar:GetFinalPrice) return m finalprice; bool RentalCar::GetAvailable( return m available; char* RentalCar::Getowner) return mowner bool RentalCar:SetMake(char newMake) strcpy(m_make, newMake): return true; bool RentalCar:SetModel(char newModel) return true; bool RentalCar: SetYearint newYear) if newYear> 0) m year newYear return true; bool RentalCar: SetTankffloat newTank) if(newTank> 0.0) m_tank newTank return true; bool RentalCar::SetBasePrice(float newBaseprice) if(newBaseprice> 0.0) m baseprice newBaseprice; return true; cout CarCon); carPtr+ zipPtr++ char RentalAgency::GetN() return m_name int RentalAgency::GetZipcode) return m zipcode; bool RentalAgency:SetName(char newname) /Igiven new value for name, will set to new value trcpy(m_name, newname) return true; bool RentalAgency:SetZipcode(int newzipcode) nt i int. zipPtr . m-zipcode: for int i 0; i 5; i++) zipPtr newzipcode; zipPtr+ newzipcode return true; RentalCar& RentalAgency::operator(const int index) nt i RentalCar* carPtr this->m_inventory; /ptr to current car if(index 4) //checks to make sure index is between 0 and 4 cout > tempYear >>tempMake >>tempModel tempTank tempBaseprice; carPtr->SetYeartempYear; carPtr->SetMake(tempMake); carPtr->SetModel(tempModel); carPtr->SetBasePrice(tempBaseprice); inFile.get(0 inFile.get(): char gps[20 "gps" char camera [20] = "camera", char lidar[20] "idar"; char radar[20] "radar"; while(inFile.get)!-'! inFile >> newType; newPtr>SetType(newType): if(strcmp(newType, gps) 0) newPtr->SetExtraCost(S.0) newPtr->GetGps)+1; else if(strcmp(newType, camera)0) newPtr>SetExtraCost(10.0); newPtr->GetCam()+1; else if strcmp(newType, lidar)- o) newPtr->SetExtraCost(15.0); newPtr->GetLid0+1; else if(strcmp(newType, radar)0) newPtr>SetExtraCost(20.0); newPtr->GetRad+1; else newPtr->SetExtraCost(0.0); inFile.get carPtr->UpdatePrice( inFile >tempAvail>tempOwner carPtr->SetAviable(tempAvail carPtr->SetOwner(tempOwner; carPtr++ void RentalAgency:PrintAllData //prints data to terminal where I deleted outfile stuff int i RentalCar* carPtr = m.inventory: //ptr to Rentalcar data int iptr m_zipcode; //ptr to current zip digit for(inti 0; 5 + cout PrintCar: carPtr+ cout able() 1) carPtr->PrintCar carPtr+ RentalAgency currAgency: / bool exitProg): int main) int count 0:/count for total number of cars read as input callMenu(currAgency) return 0; void callMenu(RentalAgency &currAgency) int menuOption; bool doneStatus # false do cout >inpfile; inFile.open[inpfile]: currAgency.ReadinDa(nFile); inFile.close void printAgency(RentalAgency &currAg currAgency.PrintAlData) void sensorNum(RentalAgency &currAgency) int i; int totSensors 0:/total number of sensors for all cars for(inti 0; 5 + totSensorscurrAgencylij.GetSenscnt) cout maxCarPtr->GetFinalPricel) && currAgency.m_inventoryli].GetAvailable) true) maxCarPtr &currAgency.m_inventoryf if(maxCarPtr->GetAvailable)false) cout GetSensors(; //ptr to current sensor char answer://answer of user whether car should be rented cout GetYear)GetModelGetTypel)I "o") cout GetType) ownName; maxCarPtr->SetAvailable(false); maxCarPtr->SetOwner(ownName); cout