我已经编写了一个代码来创建数据文件。在if-else块中,执行else块,但是尽管未在所需位置创建文件。为什么会这样呢?

#include <stdio.h>

int main() {
   FILE *fptr;

   fptr = fopen("C:\\test.txt", "w");
   if(fptr == NULL) // codition when file is not created
   {
       printf("File can not be created. \n");
   }
   else
   {
       printf("file has been successfully created. \n");

   }
   //fputs(string, file_pointer_variable)
   fputs("my first write to file", fptr);
   fclose(fptr);
   return 0;
}

最佳答案

您的问题可能属于在c:\中写入/创建文件的权限/权利

如果fopen失败,则必须更改代码以避免使用该文件,例如:

#include <stdio.h>

int main(void)
{
   FILE *fptr;

   fptr = fopen("C:\\test.txt", "w");
   if(fptr == NULL) // codition when file is not created
   {
       perror("fopen error: ");
       return 1;
   }
   else
   {
       printf("file has been successfully created. \n");
       fputs("my first write to file", fptr);
       fclose(fptr);
   }
   return 0;
}


如您所见,我使用了perror,可以添加有关fopen函数发生的错误的信息。

关于c - 无法使用代码块创建数据文件,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/42832157/

10-12 15:02