1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86
| #include <stdio.h>
#include <stdlib.h>
#include <errno.h>
#include <limits.h>
char *allocateCharPtr ( int wordSize )
{
char *ptr = (char*)malloc(wordSize*sizeof(char));
if ( ptr != NULL )
{
return ptr;
}
else perror("\n ERROR in allocateCharPtr ");
}
/* Fonction qui récupère le nombre de caractères contenu le fichier */
int getCharFilesNumbers ( char *filePath )
{
FILE *file = fopen( filePath,"r");
if( file != NULL )
{
int counter = 0;
char c;
while( fscanf( file,"%c",&c ) != EOF )
{
if ( counter < INT_MAX )
{
counter++;
}
else perror("\n ERROR in getCharFilesNumber 2 ");
}
return counter;
}
else perror("\n ERROR in getCharFilesNumber 1 ");
fclose(file);
}
/* Fonction pour mettre en mémoire un fichier */
char *fileToString( char *filePath, int *bufferLength )
{
FILE *file = fopen( filePath,"r" );
if( file != NULL && bufferLength != NULL)
{
*bufferLength = getCharFilesNumbers( filePath );
char *buffer = allocateCharPtr ( *bufferLength );
char c;
int offset = 0;
while( fscanf( file,"%c",&c ) != EOF )
{
buffer[offset] = c;
offset++;
}
return buffer;
}
else perror("\n ERROR in fileToString ");
fclose(file);
}
int main ()
{
int size = 0;
char *fileMemorized = fileToString( "fichier.txt", &size );
int i;
for ( i=0 ; i<size ; i++ )
{
printf("%c", fileMemorized[i]);
}
return 0;
} |
Partager