使用fopen函数编写文件

3
我写了下面这段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的语法高亮功能(更不用说多行!) - Asher Dunn
这个 'FILE *fopen(),' 是打字错误吗? - Andrew Keith
2
为了避免反斜杠的麻烦,请始终使用正斜杠编写路径名:fopen("D:/Satish_SharedSubstance/V13.4-CT_Testing/LONGRUN_Testing/writetest.txt","w"); 这可以保证在所有平台上都能正常工作,包括OpenVMS、MSDOS和Windows。 - wallyk
3个回答

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

尝试将路径中的 "\" 替换为 "\\"

1
请检查您D盘的根目录,看看是否有一个文件名非常长的文件 :) - John Knoeller

4

两件事:

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

0

您可以执行以下操作:

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接