Retour d'un printf avec un pointeur : char **

Résolu/Fermé
Eleonorezi - 25 févr. 2011 à 15:58
 Eleonorezi - 25 févr. 2011 à 16:56
Bonjour,

Alors en fait j'ai un petit problème avec une chaîne de caractère. Je dois écrire un programme qui va lire le nom des atomes dans un fichier et les écrire dans un autre fichier que mon programme crée.

Dans la fonction main j'ai défini les choses de la manière suivante :
char **a;//Noms des elements.

Puis après avoir utiliser la fonction find, je fait un printf :
printf("%s\n", a[i]);

Et avec ça je vois bien sur la console que j'obtiens les symboles des atomes.

Mais en fait le problème c'est qu'il faut que je réutilise ce a[i], dans une fonction pour pouvoir l'écrire dans ke fichier que je crée.
Et quand j'écris, dans ma fonction :
fprintf(f_film, "%d %f %f %f \n", a[i], x[i], y[i], z[i]);
Je me retrouve avec des chiffres du genre : 5251152, à la place des symboles des éléments dans le fichier que j'ai crée. Alors que je vois très bien que les symboles s'affichent sur la console.

Est-ce qu'il faudrait que je rajoute quelque chose dans le printf de ma fonction pour obtenir les symboles ? Parce que là on dirait que j'obtient l'adresse.

Merci beaucoup !!!! :-) !

1 réponse

arthurc Messages postés 26 Date d'inscription mardi 22 février 2011 Statut Membre Dernière intervention 25 mars 2011 4
25 févr. 2011 à 16:47
Bonjour,

Remplace ton %d par un %s, qui correspond à l'affichage d'une chaine de caractères
alors que d correspond à un nombre
en effet tu affiches l'adresse de ta chaine en faisant %d
0
Oh ben oui !!!!
Oh merci beaucoup beaucoup !!! J'ai tout revérifié sauf ça !
Merci !!!!!
0