Неверная запись в текстовый документ - 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)) {
...
}

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

  1. Первым делом, в условии проверяется, является ли переменная WRITE_FILE равной NULL. Если это так, то выполняется блок кода, который идет после этого условия (три точки ...).
  2. Если WRITE_FILE не равно NULL, то выполняется блок кода, который идет после этого условия (три точки ...).
  3. В обоих блоках кода (после каждого условия) выполняются операции, которые предполагают запись в файл. Однако, поскольку в условии присутствует проверка на NULL, то можно предположить, что перед выполнением этих операций выполняется проверка, не равно ли значение WRITE_FILE NULL.
  4. Если WRITE_FILE равно NULL, то запись в файл не производится, и программа продолжает работу с другими задачами.
  5. Если WRITE_FILE не равно NULL, то выполняется запись в файл, и после этого программа продолжает работу с другими задачами.

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


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

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

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