Probleme avec les fichiers en c

Fermé
box - 20 août 2003 à 17:11
 box - 22 août 2003 à 19:35
Bonjour,

quelqu'un pourrait il m'aider pour ecrire des fonctions permettant:
-de retourner le nbre de "A", de "B".."Z" utilises dans un fichier de type TEXTE.(pas de difference entre minuscule et majuscule:la fonction <troupper> permettant la conversion)

- de retourner le nbre total de lettres utilises dans le fichier texte

-de realiser une copie du fichier

-et enfin de retourner le nbre de mots dans ce fichier
merci
A voir également:

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
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===----
0
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
0
Merci pour ces indiactions mais je n'arrive pas a ecrire ces fonctions en langage C.
0
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
pour la premiere, un simple switch case devrait faire l'affaire...

http://www.commentcamarche.net/c/ccond.php3

Reeter
0

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
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+
0
merci pour ta reponse, mais en faites il me fallait des fonctions distinctes ie, une fonction qui me retourne le nbre de caracteres dans un fichier, une fonction qui me retourne le nbre de mots dans un fichier...
0