Переменный файл, возможно, не был инициализирован - PullRequest
2 голосов
/ 02 апреля 2019

Вот моя функция.Мой символ peca определяется как char peca[MAX_BUFFER], где max_buffer равен 1024. Я хочу записать в свой файл "tabuleiro", что находится внутри peca, но моя программа всегда говорит, что файл, возможно, не был инициализирован.

То есть моя функция не печатает мой текстовый файл, есть идеи?

void write_txt (char *peca){
    FILE *file;
    fopen("tabuleiro.txt","w");
    fprintf(file,"M: %c\n",*peca);
    fclose(file);
}

1 Ответ

5 голосов
/ 02 апреля 2019

Так что моя функция не печатается в моем текстовом файле

Назначьте указатель возврата FILE* fopen(const char* filename, const char* mode ); для вашего файла, например:

file = fopen("tabuleiro.txt", "w");

Затем вы можете проверить, если file равно , а не NULL, после его открытия, чтобы узнать, успешно ли он открылся.

Более того, вы, вероятно, хотите записать в файл, используя %s, который предназначен для строк.

Итак, вы можете попробовать это:

void write_txt (char *peca) {
    FILE *file = fopen("tabuleiro.txt", "w");
    if(!file) {
      printf("File did NOT open successfully!\n")
      // error handling here..do not execute the fprintf() or fclose()
    }
    fprintf(file,"M: %s\n",*peca);
    fclose(file);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...