Compter le nombre de caractères

Soyez le premier à donner votre avis sur cette source.

Snippet vu 14 402 fois - Téléchargée 39 fois

Contenu du snippet

C'est un code qui permet de compter le nombre de caractères dans un fichier.

Il liste les caractères (32 à 126) et marque combien de fois ils se trouvent dans le fichier.

Pratique et apprend la lecture d'un fichier tableau...

Source / Exemple :


#include <stdio.h>
#include <stdlib.h>

///////////// LE NOMBRE DE CARACTERES ////////////////

int file_exists(char *filename);

main()
{
		char ch, source[80];
		int index;
		long count[127];
		FILE *fp;

		fprintf(stderr, "\nEntrez le nom du fichier source : ");
		gets(source);

		if(!file_exists(source))
		{
			fprintf(stderr, "\n%s n'existe pas.\n\n", source);
			exit(1);
		}
		else
		{
				
			if ((fp = fopen(source, "r")) == NULL)
			{
				fprintf(stderr, "\nErreur d'ouverture de %s en mode r.\n\n", source);
				exit(1);
			}

			for (index = 31; index<127; index++)
			{
				count[index] = 0;
			}

			while(1)
			{
				ch = fgetc(fp);
				if(feof(fp))
				{
					break;
				}

			if(ch > 31 && ch < 127)
				count[ch]++;
			}	

			printf("\nChar\t\tCount\n");
			for (index=32; index<127; index++)
				printf("[%c]\t\t%d\n", index, count[index]);

			fclose(fp);
			return(0);
		}
}

int file_exists(char *filename)
{
		FILE *fp;
			if((fp = fopen(filename, "r")) == NULL)
			{
				return 0;
			}
			else
			{
				fclose(fp);
				return 1;
			}
}

Conclusion :


Amusez-vous bien ! :))

A voir également

Ajouter un commentaire

Commentaires

Messages postés
33
Date d'inscription
mercredi 18 octobre 2000
Statut
Membre
Dernière intervention
4 janvier 2010

Bonjour,

je souhaiterais convertir n'importe quel type de fichier (txt, jpg, avi, exe ...) en fichier binaire ou plutot en fichier texte contenant un suite de 0 et 1. et la meme chose faire le contraire.

#include <stdio.h>

int main(int argc, char **argv) {
/*
FILE *fp;
fp=fopen("test.c", "wb");
char x[10]="ABCDEFGHIJ";
fwrite(x, sizeof(x[0]), sizeof(x)/sizeof(x[0]), fp);
*/

FILE *fp;
fp=fopen("test.c", "rb");
char x[10];//="ABCDEFGHIJ";
fread(x, sizeof(char), 10, fp);

printf("%d================",sizeof(x));
printf("\n");
for(int i=0;i<sizeof(x);i++)
{

printf("%x==========",x[i]);
//printf("\n");
for(int j=7;j>=0;j--)
{
//printf("(%d)",j);
printf("%d",(x[i]>>j)&(255>>7));
}
printf("\n");
}

}

Merci pour votre aide.

sed
Messages postés
24
Date d'inscription
lundi 30 mai 2005
Statut
Membre
Dernière intervention
19 août 2005

Je suis debutant et pourtant je ne vois pas ce que fais ce code ici :s

Il n'y a rien d'expert la dedans..
Messages postés
1
Date d'inscription
jeudi 8 mai 2003
Statut
Membre
Dernière intervention
8 mai 2003

l'intérêt de ce script est de permettre aux débutant de se retrouver dans les méthodes d'ouverture de fichiers; car j'aimerais utilisé FmOpenRead, mais je ne sais pas comment l'ouvrir
Messages postés
41
Date d'inscription
dimanche 17 novembre 2002
Statut
Membre
Dernière intervention
14 avril 2004

c koi l'interet d'un code de ce style ?

elendilm> tout à fait d'accord de plus.
mais en remplacant ton code par:

if ((fp fopen("src","r")) (FILE *)NULL)
{
//
}
else
{
//
}

en plus, là tu peux lire :D
Messages postés
21
Date d'inscription
mardi 23 juillet 2002
Statut
Membre
Dernière intervention
14 août 2002

donc du coup.. pour tester l'existence de ce fichier... tu dois faire 2 fopen .........
trop lol!!!!! ta reflechis en ecrivant ? (je veux pas etre mechant..) mais bon..

ta jamais lu que fopen retourne NULL si le fichier existe pas?
d'ailleurs.. avec ce source.. tu laisse 1 pointeur non liberé a la fin de l'execution.. l e pointeur FILE *fp .. qui n'est pas declaré static, ni liberé qd le fichier existe.....!



t'aurai ptetre du mettre
if (fopen(source,"r") == (FILE *) NULL)
{
// PB
}
else
{
// TU FAIS TON PROG
}

c + propre non??
Afficher les 6 commentaires

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.