Имеется часть кода:
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, когда вы его не используете. Если хотите в одной функции проводить и чтение и запись, то вам придется делать это по очереди.
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Привет, не найду костыльХочу свою функцию для чтения/записи файлов, но оно не хочет считывать
Сразу же оговорюсь: я уважаю стандарт :) "Закон есть закон" (с) Фердинанд Пасторелли
Как создать правильно создать заголовочный файл для структур? Пытаюсь так, не выходит: structuresh