Неверная запись в текстовый документ - C (СИ)
Формулировка задачи:
Здравствуйте! Ребят, подскажите, при какой причине в текстовый документ вводить мусор? В чем ошибка? А если раскомментировать строку
, то ошибка какая то большая
fclose(WRITE_FILE);
int main (void) { int *Array, size; printf("Введите размер массива - > "); scanf("%d", &size); Array = (int*)malloc(size); for (int i = 0; i < size; ++ i) Array[i] = rand() %100; printf("Array - > "); for (int i = 0; i < size; ++ i) printf("%d ", Array[i]); FILE *WRITE_FILE = fopen("/home/anonymous/Documents/Self-Education/output.txt", "wt+"); if (WRITE_FILE == NULL) { printf("Error! File isn't found! \n"); return(0); } else if (!(WRITE_FILE == NULL)) { for (int i = 0; i < size; ++ i) fprintf(WRITE_FILE, "%d\n\r", Array[i]); // fclose(WRITE_FILE); } printf("\n"); return(0); } Вот такой вот результат записи в фаил: 83 86 77 15 93 35 86 92 49 21 561 0 -72536960 59 23276176 0 23276176 0 23276176 0 23276176 0 23276291 0 23280272
Решение задачи: «Неверная запись в текстовый документ»
textual
Листинг программы
if (WRITE_FILE == NULL) { ... } else if (!(WRITE_FILE == NULL)) { ... }
Объяснение кода листинга программы
- Первым делом, в условии проверяется, является ли переменная
WRITE_FILE
равнойNULL
. Если это так, то выполняется блок кода, который идет после этого условия (три точки...
). - Если
WRITE_FILE
не равноNULL
, то выполняется блок кода, который идет после этого условия (три точки...
). - В обоих блоках кода (после каждого условия) выполняются операции, которые предполагают запись в файл. Однако, поскольку в условии присутствует проверка на
NULL
, то можно предположить, что перед выполнением этих операций выполняется проверка, не равно ли значениеWRITE_FILE
NULL
. - Если
WRITE_FILE
равноNULL
, то запись в файл не производится, и программа продолжает работу с другими задачами. - Если
WRITE_FILE
не равноNULL
, то выполняется запись в файл, и после этого программа продолжает работу с другими задачами.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д