【问题标题】:Writing a file using fopen function使用 fopen 函数写入文件
【发布时间】:2009-12-22 05:05:31
【问题描述】:

我编写了以下 C 程序来将数据写入文件。程序已正确编译,但文件中没有写入任何内容。如果需要,请提出修改建议。

#include <stdio.h>
#include <errno.h>

int main()
{
    int i;
    FILE *fopen(),*fp;
    fp = fopen("D:\Satish_SharedSubstance\V13.4-CT_Testing\LONGRUN_Testing\writetest.txt","w");
    /*Create a file and add text*/
    if(fp!=NULL)
    {
        fprintf(fp,"GRP \n");
        fprintf(fp,"groupname group_1 \n");
        fprintf(fp,"groupcomment group_1\n");
        fprintf(fp,"jobnet 255 \n");
        fprintf(fp,";\n");
        for (i=1;i<=255;i++)
        {
            fprintf(fp,"GNT \n");
            fprintf(fp,"jobnetname jobnet_t%d\n",i);
            fprintf(fp,"jobnetnumber %d\n",i);
            fprintf(fp,";");
        }
        /*writes data to the file*/
        fclose(fp); /*done!*/ 
    }
    else
    {
        printf("Error opening file\n");
    }
    return 0;
} 

【问题讨论】:

  • 哎呀,请重新格式化您的帖子以利用 SO 的语法突出显示(更不用说多行!)
  • 这个 'FILE *fopen(),' 是错字吗?
  • 所以你不会在使用反斜杠时遇到麻烦,始终使用正斜杠编写路径名:fopen("D:/Satish_SharedSubstance/V13.4-CT_Testing/LONGRUN_Testing/writetest.txt","w"); 这保证适用于所有平台,甚至是 OpenVMS、MSDOS 和 Windows。

标签: c file handlers


【解决方案1】:

两件事:

  1. 去掉变量声明中的 *fopen()。
  2. 必须在 C 字符串中转义反斜杠。将每个“\”替换为“\\”。

【讨论】:

    【解决方案2】:
     fp = fopen("D:\Satish_SharedSubstance\V13.4-CT_Testing\LONGRUN_Testing\writetest.txt","w");
    

    尝试在 Path 中将 "\" 替换为 "\\"

    【讨论】:

    • 并检查你的 D: 驱动器的根目录中是否有一个名称很长的文件:)
    【解决方案3】:

    您可以执行以下操作:-

    FILE *fp = fopen("D:\\Satish_SharedSubstance\\V13.4-CT_Testing\\LONGRUN_Testing\\writetest.txt","w");  
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-06-29
      • 1970-01-01
      • 2011-12-24
      • 1970-01-01
      • 1970-01-01
      • 2012-04-07
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多