代码之家  ›  专栏  ›  技术社区  ›  Chase

visual studio 2017中的C文件处理

  •  -1
  • Chase  · 技术社区  · 6 年前

    visualstudio中的文件处理命令似乎与普通命令不同。我目前正在学习用C语言处理文件的基本知识,但是命令似乎不起作用。这就是我现在所拥有的-

     #include <stdio.h>
     int main()
    {
       int num;
       FILE *fptr;
       fptr = fopen("C:\\", "program.txt", "w");
    
       if (fptr == NULL)
      {
          printf("Error!");
          exit(1);
      }
    
        printf("Enter num: ");
        scanf_s("%d", &num);
    
        fprintf(fptr, "%d", num);
        fclose(fptr);
    
         return 0;
    }
    

    以下是构建输出-

    “fopen”:实际参数太多

    警告C4013:“exit”未定义;假设extern返回int

    错误C4996:“fopen”:此函数或变量可能不安全。考虑使用

    而不是开玩笑。要禁用否决,请使用\u CRT\u SECURE\u NO\u WARNINGS。有关详细信息,请参阅联机帮助。

    “fopen\u s”:形参1和实参1的不同类型

    “fopen\u s”:用于调用的参数太少

    “=”:“FILE*”在间接寻址级别上与“errno\t”不同

    我需要一些真正的帮助。

    2 回复  |  直到 4 年前
        1
  •  0
  •   Alexey Polyudov    6 年前

    你应该打开你的文件

    文件*f; f=fopen(“C:\\程序.txt“,”w“);

    文件*f; int err=fopen\u s&f,“C:\\程序.txt“,”w“);

    后者将FILE**作为额外参数,并返回错误代码(成功时为0)。

        2
  •  0
  •   Achal    6 年前

    还有一个逗号 , 在里面 fopen() fopen()

    这个

    fptr = fopen("C:\\", "program.txt", "w"); /* fopen() expects 2 arguments */
    

    fptr = fopen("C:\\program.txt", "w");
    

    您可以在下面禁用

    而不是开玩笑。要禁用否决,请使用\u CRT\u SECURE\u NO\u WARNINGS。

    警告

    #pragma warning(disable:4996)     /* use it before other headers */
    

    fopen_s() .