[C] lecture de fichier
mélina
-
mélina -
mélina -
bonsoir,
J'ai un petit soucis je n'arrive pas à afficher le contenu d'un fichier voici le code si quelqu un peut m'aider ca serait gentil.
merci
J'ai un petit soucis je n'arrive pas à afficher le contenu d'un fichier voici le code si quelqu un peut m'aider ca serait gentil.
merci
/* fichier1.c */
#include <stdio.h>
#include<string.h>
int main (int argc, char **argv)
{
/* ouverture du fichier en mode texte */
FILE *fp = fopen ("toto1.c", "r");
/* L'ouverture du fichier est-elle realisee ? */
if (fp != NULL)
{
/* definition d'un tableau de char destine a recevoir la ligne
* La taille est arbitraire. Elle doit etre cependant adaptee * aux besoins courants.
* Pour les grandes tailles (disons > 256 char),
* il est preferable d'utiliser une allocation dynamique.
*/
char ligne[32];
/* lecture de la premiere ligne */
while( fgets (ligne, 32, fp));
/* Affichage de la premiere ligne */
printf ("1: %s\n",ligne);
/* lecture de la deuxieme ligne */
fgets (ligne, 3, fp);
/* Affichage de la deuxieme ligne */
printf ("2: %s\n", ligne);
/* Fermeture du fichier */
fclose (fp);
}
else
{
printf ("Erreur d'ouverture du fichier\n");
}
return 0;
}
4 réponses
-
un erreur de ma part c'est 32 et non pas 3, mais ca ne resout trjs pas le prb
/* lecture de la deuxieme ligne */
fgets (ligne, 32, fp); -
Je mettrais plutot ca :
/* fichier1.c */ #include <stdio.h> #include<string.h> int main (int argc, char **argv) { /* ouverture du fichier en mode texte */ FILE *fp = fopen ("toto1.c", "r"); /* L'ouverture du fichier est-elle realisee ? */ if (fp == NULL) { } /* definition d'un tableau de char destine a recevoir la ligne * La taille est arbitraire. Elle doit etre cependant adaptee * aux besoins courants. * Pour les grandes tailles (disons > 256 char), * il est preferable d'utiliser une allocation dynamique. */ char ligne[32]; /* lecture de la premiere ligne */ while( fgets (ligne, 32, fp)); /* Affichage de la premiere ligne */ printf ("1: %s\n",ligne); /* lecture de la deuxieme ligne */ fgets (ligne, 3, fp); /* Affichage de la deuxieme ligne */ printf ("2: %s\n", ligne); /* Fermeture du fichier */ fclose (fp); } else { printf ("Erreur d'ouverture du fichier\n"); } return 0; } -
Je mettrais plutot ca : (le premier message est à supprimer, parti trop vite)
/* fichier1.c */ #include <stdio.h> #include<string.h> int main (int argc, char **argv) { FILE *fp = fopen ("toto1.c", "r"); // Test ouverture du fichier if (fp == NULL) { printf ("Erreur d'ouverture du fichier\n"); exit(1); } //Fichier ouvert char ligne[32]; int i = 1; while( fgets(ligne, sizeof(ligne), fp) != NULL ) { printf ("%d: %s\n",i,ligne); i++; } // Teste si fgets a rencontré une erreur if( !feof(fp) ) { printf("erreur rencontrée lors de la lecture"); exit(1); } //Teste Fermeture if(fclose(fp) != 0) { printf("Impossible de fermer le flux"); exit(1); } //Tout s'est bien passé return 0; } -
Je vous remercie pour votre réponse, mais je n 'arrive tout de même pas afficher le contenu de mon fichier tot1.c
comment faire?