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
|
#include <stdlib.h>
#include <string.h>
[...]
// pour l'assemblage des chaines de caractères
char *str_cat (char *str1, char const *str2)
{
if ((str1 == NULL) && (str2 == NULL))
return NULL;
if (str1 == NULL)
return strdup (str2);
if (str2 == NULL)
return str1;
char *strCat = NULL;
size_t len1;
if (str1 == NULL)
len1 = 0;
else
len1 = strlen (str1);
void *tmp = realloc (str1, len1 + strlen (str2) + 1);
if (tmp != NULL)
{
strCat = tmp;
if (str1 == NULL)
{
strcpy (strCat, "");
}
strcat (strCat, str2);
}
else
{
free (strCat), strCat = NULL;
}
return strCat;
}
// et la fonction de lecture du fichier...
char *readFromFile (const char *path)
{
char *cData = NULL;
FILE *fichier = fopen (path, "r");
if (fichier != NULL)
{
char chaine[BUFSIZ];
unsigned long lines = 0;
while (fgets (chaine, sizeof chaine, fichier) != NULL)
{
cData = str_cat (cData, chaine);
if (cData == NULL)
{
puts ("Erreur de memoire");
break;
}
lines++;
}
fclose (fichier);
}
return cData;
} |
Partager