Вывод содержимого файла на консоль

266
27 ноября 2017, 18:54

Имеется часть кода:

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". В чём проблема?

Answer 1

Попробовал запустить у себя ваш код.

ofstream file1("list.txt");
ifstream fin("list.txt");

Вы пытаетесь дважды открыть один и тот же файл, отсюда и ошибка. Если убрать создание file1, то ваш код выводит содержимое файла. Еще вызывает вопрос вот эта строчка:

f1 = fopen("list.txt", "rb");

На работоспособность она не повлияла, но непонятен смысл создания f1, когда вы его не используете. Если хотите в одной функции проводить и чтение и запись, то вам придется делать это по очереди.

READ ALSO
Не удаётся открыть файл с помощью std::ifstream

Не удаётся открыть файл с помощью std::ifstream

Привет, не найду костыльХочу свою функцию для чтения/записи файлов, но оно не хочет считывать

322
Доступ к структуре через unsigned char

Доступ к структуре через unsigned char

Пусть есть структура S следующего вида:

327
strict aliasing и реальные компиляторы

strict aliasing и реальные компиляторы

Сразу же оговорюсь: я уважаю стандарт :) "Закон есть закон" (с) Фердинанд Пасторелли

221
Заголовочный файл для структур C++

Заголовочный файл для структур C++

Как создать правильно создать заголовочный файл для структур? Пытаюсь так, не выходит: structuresh

235