2009-12-22 15 views
3

J'ai écrit le programme C suivant pour écrire des données dans un fichier. Le programme a été compilé correctement mais rien n'est écrit dans le fichier. Veuillez suggérer des modifications si nécessaire.Écrire un fichier en utilisant la fonction 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

Aïe, s'il vous plaît reformater votre poste pour tirer parti de la syntaxe de SO mettant en lumière (! Sans parler de plusieurs lignes) –

+0

est ce « FILE * fopen() ,' une faute de frappe ? –

+2

Pour ne pas avoir de problèmes avec les barres obliques inverses, toujours écrire les chemins avec des barres obliques: fopen ("D: /Satish_SharedSubstance/V13.4-CT_Testing/LONGRUN_Testing/writetest.txt", "w"); 'C'est garanti travailler sur toutes les plateformes, même OpenVMS, MSDOS et Windows. – wallyk

Répondre

4

Deux choses:

  1. se débarrasser de la * fopen() dans la déclaration de variable.
  2. Les barres obliques inverses doivent être échappées dans les chaînes C. Remplacez chaque '\' par un '\\'.
4
fp = fopen("D:\Satish_SharedSubstance\V13.4-CT_Testing\LONGRUN_Testing\writetest.txt","w"); 

Essayez de remplacer "\" avec "\\" dans le chemin.

+1

et vérifiez la racine de votre lecteur D: pour un fichier avec un nom vraiment long :) –

+0

Merci John :) vous aviez absolument raison! – Satish

0

Vous pouvez faire le mentionné ci-dessous: -

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