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

Résolu
Eleonorezi -  
 Eleonorezi -
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   Statut Membre Dernière intervention   4
 
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
Eleonorezi
 
Oh ben oui !!!!
Oh merci beaucoup beaucoup !!! J'ai tout revérifié sauf ça !
Merci !!!!!
0