C Запись в файл перестает работать после использования в качестве функции? - PullRequest
0 голосов
/ 25 апреля 2020

Я написал функцию, которая устанавливает каждое число строки в файле .txt на ноль и очищает другой файл.

Первоначально я написал эту логику c в main, и она прекрасно работала. Но теперь мне нужно создать меню для моей программы, поэтому мне нужно поместить этот лог c в функцию.

Вот где вещи go не так. Как только я перемещаю logi c в функцию, он не устанавливает цифры в ноль, он просто очищает файл, и я ничего не менял.

Ожидаемый результат:

  • Workers.txt: Adam Washington Monday Friday --(use function)--> {clear}
  • days.txt: 1 0 0 0 1 0 0 --(use function)--> 0 0 0 0 0 0 0

Фактический результат:

В обоих файлах все ясно.

void ResetOwnData(){
        printf("--------------------------------------------------------------------------\n");
        FILE* freset = fopen ("workers.txt", "w");
        close(freset);
        FILE* freset2 = fopen ("days.txt", "w");
            for(int i = 0; i < 7; i++){
                fprintf(freset2,"%d ",i+1);
            }
            fprintf(freset2,"\n");
            for(int i = 0; i < 7; i++){
                fprintf(freset2,"%d ",0);
            }
        close(freset2);
        printf("Everything get reset!\n");
        printf("--------------------------------------------------------------------------\n");
    }

1 Ответ

0 голосов
/ 26 апреля 2020

Есть две основные вещи, которые кажутся неверными.

  1. Вы используете close вместо fclose. fclose используется с файловыми потоками (как и вы) *

Вот ссылка CodingGround на исправления, которые, я полагаю, вы ищете.

Вы должны добавить некоторую проверку ошибок, чтобы убедиться, что вы действительно открыли файл и что вы освобождаете любую выделенную память

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...