[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;
}
A voir également:
- [C] lecture de fichier
- Fichier bin - Guide
- Fichier epub - Guide
- Fichier rar - Guide
- Comment réduire la taille d'un fichier - Guide
- Fichier .dat - Guide
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);
/* 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;
}