A voir également:
- Probleme avec les fichiers en c
- Renommer plusieurs fichiers en même temps - Guide
- Wetransfer gratuit fichiers lourd - Guide
- Explorateur de fichiers - Guide
- Fichiers bin - Guide
- Fichiers epub - Guide
5 réponses
yro
Messages postés
60
Date d'inscription
lundi 3 septembre 2001
Statut
Membre
Dernière intervention
21 novembre 2003
7
20 août 2003 à 23:00
20 août 2003 à 23:00
Salut, pour savoir le nombre de 'a', 'b','c',.... tu peux lire le fichier caractère par caractère et à chaque lecture tu incrémentes un compteur.
exemple: tu crées un tableau de 26 positions (lettre de l'alphabet) et à chaque lecture, tu fait un switch case 'a' incrémenter tab[0], case 'b' incrémenter tab[1], .......
Il y a peu être plus facile mais là direct je vois pas.......
----===Yro===----
exemple: tu crées un tableau de 26 positions (lettre de l'alphabet) et à chaque lecture, tu fait un switch case 'a' incrémenter tab[0], case 'b' incrémenter tab[1], .......
Il y a peu être plus facile mais là direct je vois pas.......
----===Yro===----
La méthode que t'as donné YRO est la methode classique pour compter les caractères et ça marche bien.
pour réaliser une copie de ton fichier tu peux le faire en réalisant une copie tjs caractère par caractère: j'explique tu ouvre ton fichier en lecture, ton nouveau fichier en ecriture avec deux flux distincts, et puis tu lis un caractére et tu l'implementesdans ton fichier en ecriture et à la fin tu ferme tes deux flux.
Pour avoir le nombre de mots dans ton fichier tu l'ouvres et tu le lis tjs caractère par caractère et tu compte le nombre d'espace+1 = nombre de mots.
Voila tout
pour réaliser une copie de ton fichier tu peux le faire en réalisant une copie tjs caractère par caractère: j'explique tu ouvre ton fichier en lecture, ton nouveau fichier en ecriture avec deux flux distincts, et puis tu lis un caractére et tu l'implementesdans ton fichier en ecriture et à la fin tu ferme tes deux flux.
Pour avoir le nombre de mots dans ton fichier tu l'ouvres et tu le lis tjs caractère par caractère et tu compte le nombre d'espace+1 = nombre de mots.
Voila tout
Reeter
Messages postés
120
Date d'inscription
mercredi 13 août 2003
Statut
Membre
Dernière intervention
6 décembre 2005
21 août 2003 à 10:47
21 août 2003 à 10:47
pour la premiere, un simple switch case devrait faire l'affaire...
http://www.commentcamarche.net/c/ccond.php3
Reeter
http://www.commentcamarche.net/c/ccond.php3
Reeter
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
dekdek2
Messages postés
14
Date d'inscription
lundi 18 août 2003
Statut
Membre
Dernière intervention
2 novembre 2003
21 août 2003 à 15:25
21 août 2003 à 15:25
voici une fonction toutes fait mais je n ai pas su la verifier car je n avais mon compilateur sous la main dis moi si ca passe???
void nbcaract (int tab[26],int *nblettre,int *nbmot)
{
FILE *fp;
int i,lettre,premot=1;
for(i=0;i<26;i++) tab[i]=0;
*nblettre=*nbmot=0;
if((fp=fopen(fichier.txt,r))==NULL) printf("Erreur d ouverture fichier");
else{
while((lettre=fgetc(fp))!=EOF)
{
lettre=toupper(lettre);
if(lettre>64 && lettre<91)
{
if(premot==1){*nbmot++;premot=0;}
tab[lettre-65]++;
*nblettre++;
}
else if(lettre!=45) premot=1;
}
}
system("copy fichier.txt fichier2.txt");
}
voici mais verifie la et dis moi ou il y a des erreur car je ne suis pas sur de toupper (il faut peut etre lui force mla main) et de la fonction system qui permet d effectuer des command dos et je na sais plus dans quel librairie mais elle est pas dur a trouver
pour ce qui concere les fichiers que j ai mis en italique et souligne a toi a mettre le chemain d acces et le nom ou si il se trouve dans ton repertoire sous non tous cour je les ai ouvert en lecture seul donc il dois exister
voila bon amusement et si tu as une question ou suggestion je suis la
a+
void nbcaract (int tab[26],int *nblettre,int *nbmot)
{
FILE *fp;
int i,lettre,premot=1;
for(i=0;i<26;i++) tab[i]=0;
*nblettre=*nbmot=0;
if((fp=fopen(fichier.txt,r))==NULL) printf("Erreur d ouverture fichier");
else{
while((lettre=fgetc(fp))!=EOF)
{
lettre=toupper(lettre);
if(lettre>64 && lettre<91)
{
if(premot==1){*nbmot++;premot=0;}
tab[lettre-65]++;
*nblettre++;
}
else if(lettre!=45) premot=1;
}
}
system("copy fichier.txt fichier2.txt");
}
voici mais verifie la et dis moi ou il y a des erreur car je ne suis pas sur de toupper (il faut peut etre lui force mla main) et de la fonction system qui permet d effectuer des command dos et je na sais plus dans quel librairie mais elle est pas dur a trouver
pour ce qui concere les fichiers que j ai mis en italique et souligne a toi a mettre le chemain d acces et le nom ou si il se trouve dans ton repertoire sous non tous cour je les ai ouvert en lecture seul donc il dois exister
voila bon amusement et si tu as une question ou suggestion je suis la
a+