Filereader

Contenu du snippet

Ceci est un code que j'ai réalisé dans le cadre de mon apprentissage du langage C. Il lit un fichier text (utiliser un format du type Notepad pour les utilisateurs Windows, sur Mac pas de problème avec Appleworks, je n'ai pas testé Linux), et tiens a jour la fréquence d'utilisation des lettres et chiffres.
Il devrait être très portable, car codé uniquement en ANSI-C99.
Feedback constructif bienvenu! ;)

Source / Exemple :


//----------------------------------------------------------//
//    TataYoyo by Francois Gauthier, public domain, 2009.  //
//----------------------------------------------------------//
//                                                          //
//    TataYoyo return percentage of each alphanumeric       //
//    occurences used in any given text file.               //
//==========================================================//

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

int main (int argc, const char * argv[])                     
{
	int c;
	int i, nbCar=0, compt[36]={0};
	char n_source[100];               
	
	printf("File to analyse? (eventually including directory):\t");
	scanf("%100s", &n_source);
	FILE* stream=fopen(n_source, "r");
	if(stream==NULL)
	 {
                       puts("\nFILE NOT FOUND");
                       exit(1);
	 }
		
	while (c=fgetc(stream), c!=EOF) 
		
		
//------------------------------------------------------------------------//	
		
		
	if (isdigit(c))
			
			
		{
		    compt[c - '0'  +26]++;          //
		    nbCar++;                        //
		}                                   //
			                            // Alphanumeric sorting
			                            //
		else if (isalpha(c))                //
		{                                   //
			compt[towlower(c) -'a']++;  //
			nbCar++;                    //
		}
			
//-----------------------------------------------------------------------//			

	for(i=0;i<36;i++)
	
	{             // Statistic creation 

		c=(i<26)? 'a'+i: '0'+i-26;
		printf(" %c %2.5f%% ||",c, (compt[i]/((float)nbCar))*100);      
		if (i%4==3) putchar('\n');                              
	}

			
			
	 fclose(stream);
	
	
	
    return 0;
}

Conclusion :


Vous aimez?

A voir également

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.