Я пытаюсь прочитать несколько значений из текстового файла и сохранить их в памяти.Создание кода на C++ более эффективно, а если оператор не работает
Это то, что файл может хранить или выглядеть
Пример 1 - файл хранения кассира имя, возраст и название должности
* Cashier Name: Bill Age: 25 Job Title: Cashier *
Пример 2 - Файл хранения имя кассира , возраст и должность
* Cashier Name: Mark Age: 37 Job Title: Manager *
Пример 3 - файл хранения наличных Имя МЭО, возраст, название работы, а также зоны покрыты
* Cashier Name: Sam Age: 45 Job Title: Area Manager Areas Covered: Manchester, Liverpool *
Пример 4 - Файл, хранящий имя кассира, возраст, должность, области прикрыта, а тип людей, этот человек управляет
* Cashier Name: Dave Age: 50 Job Title: Regional Manager Areas Covered: Derby, Manchester, Liverpool Manages: Area Managers *
В принципе, я пытаюсь реализовать небольшую программу, которая может хранить имена кассиров, их возраст и названия работы в файле .txt
, а затем для извлечения этих значений в память. Я могу получить значения для первого и второго примеров, однако мне трудно получить и сохранить значения для третьего и четвертого примеров. Мой блок if, else if, else
, похоже, не работает и не эффективен (т. Е. Может ли код использоваться повторно)?
Это мой код
istream& inputWorkers(istream& is, Workers * & workers)
{
char d1, d2;
string cashName, name, cashAge, cashTitle, title, cashAreas, areas, cashManages, manages;
int age;
if(is >> d1 >> cashName >> name >> cashAge >> age >> cashTitle >> title >> d2)
{
*workers = Workers(name, age, title); // Segmentation error
}
else if(is >> d1 >> cashName >> name >> cashAge >> age >> cashTitle >> title >> cashAreas >> areas >> d2)
{
*workers = AreaMangers(name, age, title, areas); // Segmentation error
}
else if(is >> d1 >> cashName >> name >> cashAge >> age >> cashTitle >> title >> cashAreas >> areas >> cashManages >> manages >> d2)
{
*workers = RegionalMangers(name, age, title, areas, manages); // Segmentation error
}
else
{
return is.setstate(badbit);
}
return is;
}
Я получаю ошибку сегментации слишком, и я не знаю, почему. Я пытался следить за видео на YouTube и читать статьи. Любая помощь будет оценена.
Благодаря
Прежде чем просить об эффективности, исправьте свой код, чтобы он работал. Также видео не являются хорошей заменой для книг или достойных учебников IMHO. –
Я действительно говорил, что он не работает. «Я тоже получаю ошибки сегментации». –
_ «Я тоже получаю ошибки сегментации». Тогда ваш код не работает **, период. Отправьте сообщение [MCVE] и покажите свои усилия по отладке, подробно объясните свои проблемы. –