Чтение из файла - последняя запись выводится два раза - C (СИ)
Формулировка задачи:
Очень нужна помощь в написании функции на С++
У меня есть написанная функция
Но хотелось бы тоже самое на С++, через
Помогите, кто чем может
Bus *Read_file(char *fname) { FILE *inf;//указатель на структуру FILE Bus x; Bus *buses=0;//если было что-то введено очищаем if ((inf=fopen(fname,"r"))==NULL) cout<<"Not file "<<fname<<endl; fseek(inf,0,0);//задаем текущее положение курсора в начале while (!feof(inf)) { fscanf(inf," %s ",&x.fio);//s-строковый тип fscanf(inf," %d ",&x.mnomer);//d-десятичный вид fscanf(inf," %s ",&x.nombus); fscanf(inf," %s ",&x.depo); buses=add(buses,x); } fclose(inf);//закрывает поток ввода/вывода return buses; }
ifstream inf(fname, ios_base::in);
Решение задачи: «Чтение из файла - последняя запись выводится два раза»
textual
Листинг программы
Bus *Read_file(char *fname) { ifstream fin(fname, ios_base::in); Bus x; Bus *buses=0;//если было что-то введено очищаем if (!fin) { cout<<"Not file "<<fname; return 0; } while (!fin.eof()) { fin >> x.fio >> x.mnomer >> x.nombus >> x.depo; buses=add(buses,x); } fin.close(); return buses; }
Объяснение кода листинга программы
- Входные данные:
- fname - имя файла, из которого необходимо считать данные.
- Создание пустого списка для автобусов:
- buses - указатель на голову списка автобусов.
- Открытие файла:
- fin - объект типа ifstream, который открывает файл для чтения.
- Проверка наличия файла:
- Если файл не может быть открыт, выводится сообщение об ошибке и возвращается 0.
- Чтение данных из файла:
- В цикле while считываются данные из файла до тех пор, пока не достигнут конец файла.
- Считываются данные о каждом автобусе: номер фио, номер маршрута, номер автобуса и номер депо.
- Каждый автобус добавляется в список.
- Закрытие файла:
- После окончания чтения файла он закрывается.
- Возврат списка автобусов:
- Возвращается указатель на голову списка автобусов.
- Если файл пуст, то возвращается 0.
- Если файл не пуст, то возвращается 1.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д