Имеется часть кода:
ofstream file1("list.txt");
FILE *f1, *f2;
void addStudent() {
f1 = fopen("list.txt", "wb");
cout << "Enter the Name of student: ";
cin.ignore(numeric_limits<streamsize>::max(), '\n');
gets_s(Students.Name, 29);
file1 << Students.Name<<" ";
cout << "Enter the average ball: ";
cin >> Students.ball;
file1 << "Av - " << Students.ball << " \n";
fclose(f1);
}
void showGroup() {
f1 = fopen("list.txt", "rb");
cout << "\t\tInformation" << endl;
ifstream fin("list.txt");
string buf;
while (getline(fin, buf)) {
cout << buf << endl;
}
fclose(f1);
}
Задача - добавление данных в файл, а после их вывод на консоль. Однако при выполнении функции showGroup() выводится только строка "Information". В чём проблема?
Попробовал запустить у себя ваш код.
ofstream file1("list.txt");
ifstream fin("list.txt");
Вы пытаетесь дважды открыть один и тот же файл, отсюда и ошибка. Если убрать создание file1, то ваш код выводит содержимое файла. Еще вызывает вопрос вот эта строчка:
f1 = fopen("list.txt", "rb");
На работоспособность она не повлияла, но непонятен смысл создания f1, когда вы его не используете. Если хотите в одной функции проводить и чтение и запись, то вам придется делать это по очереди.
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости