2009-12-22 58 views
3

我写了下面的C程序来将数据写入文件。程序编译正常,但没有任何文件正在写入。请根据需要提出修改建议。使用fopen函数编写文件

#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; 
} 
+0

哎哟,请重新格式化您的文章采取SO的语法高亮(!更不用说多线) – 2009-12-22 05:08:22

+0

是这样的优势“FILE * fopen()函数,'错字? – 2009-12-22 05:10:43

+2

所以你不会遇到反斜杠的问题,总是用正斜杠写路径名:'fopen(“D:/Satish_SharedSubstance/V13.4-CT_Testing/LONGRUN_Testing/writetest.txt”,“w”);'这是有保证的在所有平台上工作,甚至是OpenVMS,MSDOS和Windows。 – wallyk 2009-12-22 05:25:48

回答

4

两件事情:

  1. 获取变量声明摆脱* fopen()函数的。
  2. 反斜杠必须在C字符串中转义。将每个'\'替换为'\\'。
4
fp = fopen("D:\Satish_SharedSubstance\V13.4-CT_Testing\LONGRUN_Testing\writetest.txt","w"); 

尝试在路径与"\\"更换"\"

+1

并检查您的D:驱动器的根目录是否为真正的长名:) – 2009-12-22 05:11:16

+0

谢谢John :)您绝对是对的! – Satish 2009-12-22 05:22:29

0

你可以做以下提到的: -

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