变量文件可能尚未初始化

时间:2019-04-02 16:58:07

标签: c file

这是我的职责。我的字符peca定义为char peca[MAX_BUFFER],其中max_buffer是1024。我想在我的“ tabuleiro”文件中写入peca内部的内容,但是我的程序总是在说该文件可能尚未初始化。

所以我的函数不会打印我的txt文件,有什么想法吗?

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

1 个答案:

答案 0 :(得分:5)

  

所以我的函数不会在我的txt文件中打印

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);
}