begin process at 2012 05 27 14:47:33
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Fichiers / Disque

 > COMPTER LE NOMBRE DE CARACTÈRES

COMPTER LE NOMBRE DE CARACTÈRES


 Information sur la source

Note :
3 / 10 - par 6 personnes
3,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Fichiers / Disque Niveau :Expert Date de création :27/05/2001 Vu :9 006

Auteur : Arnotic

Ecrire un message privé
Site perso
Ce membre participe au partage de revenus publicitaires
Commentaire sur cette source (6)
Ajouter un commentaire et/ou une note


 Description

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

  • #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;
  • }
  • }
#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 ! :))


 Sources du même auteur

Source avec Zip Source avec une capture ARCOLOR (WIN64)
Source avec Zip REMPLACE CRT (WIN64)
Source avec Zip Source avec une capture CREATION DE FICHIER PDF
Source avec Zip SURVEILLER LA MÉMOIRE D'UN PROCESSUS
Source avec Zip TOOL - MOVE CHAINE

 Sources de la même categorie

COMPTER LE NOMBRE DE PAGES D'UN FICHIER PDF par Renfield
Source avec Zip Source avec une capture GENERE BMP par lajouad
Source avec Zip Source avec une capture GETIONNAIRE D'UNE BIBLIOTHÉQUE EN C par benzarabel
FONCTION D'ÉDITION DE FICHIER BIT À BIT [C-MULTIPLATEFORME] par lynxtyle
Source avec Zip Source avec une capture UN GESTIONNAIRE DU FICHIER par benzarabel

Commentaires et avis

Commentaire de DolfinCry le 27/04/2002 03:38:22

Tant qu'a moi cela ressemble plus a un code de niveau 1 mais bon, si ca te fais plaisir de penser que tu es un pro.  Prend le pas mal, c'est bien comme script mais pas pour ce niveau, crois moi...

Commentaire de elendilm le 30/07/2002 22:20:17

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??

Commentaire de nEUrOne le 13/12/2002 13:56:38

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

elendilm&gt; 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

Commentaire de delafontaine le 08/05/2003 00:59:07

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

Commentaire de firemax le 06/06/2005 14:03:46

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..

Commentaire de mogador le 14/12/2009 18:12:01

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

 Ajouter un commentaire




Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,655 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales