Как правильно считать из файла? Ошибка "Uninitialized local variable 'fr'" - C (СИ)
Формулировка задачи:
Тринадцатая визуалка ругается на считывание с файла
ошибка
error C4700: uninitialized local variable 'fr'
#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(); }
Решение задачи: «Как правильно считать из файла? Ошибка "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();
Объяснение кода листинга программы
- setlocale(LC_CTYPE,
Russian
); — Эта строка устанавливает русскую локаль для правильного отображения русских символов. - int i, m, exitflag = 0; — Здесь объявлены три переменные: i, m и exitflag. i и m используются для обработки данных из файла, а exitflag используется для контроля выхода из программы.
- *FILE fr;* — Здесь объявлена переменная типа FILE, которая будет использоваться для работы с файлом.
- fopen_s(&fr,
tex.txt
,r
); — Эта функция открывает файлtex.txt
для чтения. В случае ошибки, программа завершается. - *treeT;* — Здесь объявлена переменная типа tree, которая будет использоваться для хранения информации о деревьях.
- T = NULL; — Здесь переменная T инициализируется значением NULL, что означает, что в дереве нет элементов.
- while (fscanf_s(fr,
%d
, &i) != EOF) — Это цикл while, который будет выполняться до тех пор, пока функция fscanf_s не вернет EOF (что означает, что данные в файле исчерпаны). Внутри цикла считывается целочисленное значение из файла и сохраняется в переменной i. - T = PushInTree(T, i); — Эта функция добавляет новый узел в дерево. Значение i передается в функцию как значение для нового узла.
- fclose(fr); — Эта функция закрывает файл после того, как все данные были считаны.
- _getch(); — Эта функция приостанавливает выполнение программы до тех пор, пока пользователь не нажмет клавишу. Это используется для предотвращения закрытия программы до того, как пользователь сможет увидеть результаты.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д