Как правильно считать из файла? Ошибка "Uninitialized local variable 'fr'" - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Тринадцатая визуалка ругается на считывание с файла
#include "head.h"
#include <conio.h>
#include <stdio.h>
#include <locale.h>
 
void main()
{
    setlocale(LC_CTYPE, "Russian");
    int i, m, exitflag = 0;
    FILE **fr;
    fopen_s(fr, "tex.txt", "r");
    tree*T;
    T = NULL;
    while (fscanf_s(*fr, "%d", &i) != EOF)
    {
        T = PushInTree(T, i);
    }
    fclose(*fr);
    _getch();
}
ошибка error C4700: uninitialized local variable 'fr'

Решение задачи: «Как правильно считать из файла? Ошибка "Uninitialized local variable 'fr'"»

textual
Листинг программы
    setlocale(LC_CTYPE, "Russian");
    int i, m, exitflag = 0;
    FILE *fr;
    fopen_s(&fr, "tex.txt", "r");
    tree*T;
    T = NULL;
    while (fscanf_s(fr, "%d", &i) != EOF)
    {
        T = PushInTree(T, i);
    }
    fclose(fr);
    _getch();

Объяснение кода листинга программы

  1. setlocale(LC_CTYPE, Russian); — Эта строка устанавливает русскую локаль для правильного отображения русских символов.
  2. int i, m, exitflag = 0; — Здесь объявлены три переменные: i, m и exitflag. i и m используются для обработки данных из файла, а exitflag используется для контроля выхода из программы.
  3. *FILE fr;* — Здесь объявлена переменная типа FILE, которая будет использоваться для работы с файлом.
  4. fopen_s(&fr, tex.txt, r); — Эта функция открывает файл tex.txt для чтения. В случае ошибки, программа завершается.
  5. *treeT;* — Здесь объявлена переменная типа tree, которая будет использоваться для хранения информации о деревьях.
  6. T = NULL; — Здесь переменная T инициализируется значением NULL, что означает, что в дереве нет элементов.
  7. while (fscanf_s(fr, %d, &i) != EOF) — Это цикл while, который будет выполняться до тех пор, пока функция fscanf_s не вернет EOF (что означает, что данные в файле исчерпаны). Внутри цикла считывается целочисленное значение из файла и сохраняется в переменной i.
  8. T = PushInTree(T, i); — Эта функция добавляет новый узел в дерево. Значение i передается в функцию как значение для нового узла.
  9. fclose(fr); — Эта функция закрывает файл после того, как все данные были считаны.
  10. _getch(); — Эта функция приостанавливает выполнение программы до тех пор, пока пользователь не нажмет клавишу. Это используется для предотвращения закрытия программы до того, как пользователь сможет увидеть результаты.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

8   голосов , оценка 3.875 из 5
Похожие ответы