A voir également:
- Compter le nombre de ligne d'un fichier en c
- Fichier rar - Guide
- Comment ouvrir un fichier epub ? - Guide
- Comment réduire la taille d'un fichier - Guide
- Partage de photos en ligne - Guide
- Site de vente en ligne particulier - Guide
2 réponses
fiddy
Messages postés
11069
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022
1 842
20 nov. 2011 à 19:35
20 nov. 2011 à 19:35
Bonjour,
Tout d'abord, il ne faut pas utiliser fgetc(fichier) deux fois pour compter une ligne.
Je m'explique :
Il faudrait plutôt faire : while((c=fgetc(fichier))!=EOF) ...
Et après : if (c=='\n')...
Ensuite, le programme me paraît correct.
Pourrais-tu donner le main également ?
Cdlt,
Tout d'abord, il ne faut pas utiliser fgetc(fichier) deux fois pour compter une ligne.
Je m'explique :
Il faudrait plutôt faire : while((c=fgetc(fichier))!=EOF) ...
Et après : if (c=='\n')...
Ensuite, le programme me paraît correct.
Pourrais-tu donner le main également ?
Cdlt,
#include <stdio.h>
#include <stdlib.h>
#define max 1000
int count_caract(FILE* fichier)
{
int a,i=0;
while(a!=EOF)
{
a=fgetc(fichier);
i++;
}
return i;
}
int count_line(FILE* fichier)
{
int i=0;
int c =0;
while((c=fgetc(fichier))!=EOF)
{
if(c=='\n')
{
i++;
}
}
return i;
}
int main(int argc , char** argv)
{
if(3>argc)
{
printf("Il manque des arguments");
return 1;
}
FILE* fichier1=NULL; //Declaration d'un fichier et initialisation à NULL
FILE* fichier2=NULL;
int caract,caract2,i,nb = 0;
int nbl;
char tab[max];
char* chaine;
fichier1=fopen(argv[1],"r"); //Ouverture d'un fichier en mode lecture
if(fichier1 != NULL)
{
printf("\n---Voici le fichier1---\n");
while(caract!=EOF)
{
caract=fgetc(fichier1); //Recupération caractère par caractère du fichier1 jusqu à la fin
printf("%c",caract);
i++;
}
printf("\n---Fin du fichier1---\n");
fclose(fichier1);
}
else
{
printf("Fichier introuvable");
fclose(fichier1);
}
fichier2=fopen(argv[2],"r");
if(fichier2 != NULL)
{
printf("\n---Voici le fichier2---\n");
while(caract2!=EOF)
{
caract2=fgetc(fichier2);
printf("%c",caract2);
}
printf("\n---Fin du fichier2---\n");
fclose(fichier2);
}
else
{
printf("Fichier Introuvable");
fclose(fichier2);
}
fichier1=fopen(argv[1],"r");
nb=count_caract(fichier1);
nbl=count_line(fichier1);
fclose(fichier1);
printf("Il y a %d caracteres\n",nb);
printf("Il y a %d lignes",nbl);
return 0;
}
#include <stdlib.h>
#define max 1000
int count_caract(FILE* fichier)
{
int a,i=0;
while(a!=EOF)
{
a=fgetc(fichier);
i++;
}
return i;
}
int count_line(FILE* fichier)
{
int i=0;
int c =0;
while((c=fgetc(fichier))!=EOF)
{
if(c=='\n')
{
i++;
}
}
return i;
}
int main(int argc , char** argv)
{
if(3>argc)
{
printf("Il manque des arguments");
return 1;
}
FILE* fichier1=NULL; //Declaration d'un fichier et initialisation à NULL
FILE* fichier2=NULL;
int caract,caract2,i,nb = 0;
int nbl;
char tab[max];
char* chaine;
fichier1=fopen(argv[1],"r"); //Ouverture d'un fichier en mode lecture
if(fichier1 != NULL)
{
printf("\n---Voici le fichier1---\n");
while(caract!=EOF)
{
caract=fgetc(fichier1); //Recupération caractère par caractère du fichier1 jusqu à la fin
printf("%c",caract);
i++;
}
printf("\n---Fin du fichier1---\n");
fclose(fichier1);
}
else
{
printf("Fichier introuvable");
fclose(fichier1);
}
fichier2=fopen(argv[2],"r");
if(fichier2 != NULL)
{
printf("\n---Voici le fichier2---\n");
while(caract2!=EOF)
{
caract2=fgetc(fichier2);
printf("%c",caract2);
}
printf("\n---Fin du fichier2---\n");
fclose(fichier2);
}
else
{
printf("Fichier Introuvable");
fclose(fichier2);
}
fichier1=fopen(argv[1],"r");
nb=count_caract(fichier1);
nbl=count_line(fichier1);
fclose(fichier1);
printf("Il y a %d caracteres\n",nb);
printf("Il y a %d lignes",nbl);
return 0;
}