2009-12-22 65 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");