écrire les lignes d'un fichier dans une mémoire alloué dynamiquement

cs_snake57 Messages postés 204 Date d'inscription vendredi 19 novembre 2004 Statut Membre Dernière intervention 1 novembre 2011 - 23 oct. 2011 à 17:19
racpp Messages postés 1909 Date d'inscription vendredi 18 juin 2004 Statut Modérateur Dernière intervention 14 novembre 2014 - 23 oct. 2011 à 22:55
Bonjour,

Je voudrais lire un fichier texte ligne et écrire la ligne lue dans une variable. Comme les lignes du fichiers texte n'ont jamais la même longueur, je me suis dis qu'il fallait passer par l'allocation dynamique.

Le problème je ne sais pas quoi mettre dans mon malloc pour qu'il connaisse la taille de la ligne de mon fichier.

bddPays = fopen("Bdd/eurocolec.pays", "r+");
if (bddPays != NULL)
{
char* memoireAllouee = NULL;
memoireAllouee = malloc(sizeof(?));
}


Vous voyez ce que je veux dire?

Le but étant qu'une fois le code exécuté je me retrouve avec la première ligne de mon fichier dans la variable memoireAllouee.

Si quelqu'un peux me dépanner la dessus sa serait cool.

1 réponse

racpp Messages postés 1909 Date d'inscription vendredi 18 juin 2004 Statut Modérateur Dernière intervention 14 novembre 2014 17
23 oct. 2011 à 22:55
Salut,
Tu dois obligatoirement utiliser des fonctions permettant de retrouver la taille du fichier et d'allouer la mémoire nécessaire en conséquence. En C standard, fseek() et ftell() seront utilsées. malloc() doit prendre en paramètre la taille retrouvée. un fread() te permattra de transmettre le contenu du fichier vers la mémoire allouée.
0
Rejoignez-nous