problème type char* et char*[20] - C - Programmation
Marsh Posté le 12-05-2014 à 17:10:35
Bonjour,
(*p).qqchose peut s'écrire p->qqchose (c'est plus lisible).
p->pseudo est déjà un pointeur (un tableau de 20 caractères est un pointeur)
dont tu n'as pas besoin de mettre & car p est déjà une adresse.
fscanf est un piège. La lecture s'arrête lorsqu'un espace est rencontré. Comme
tu écris "Votre pseudo est : %s\n" dans le fichier, il récupère "Votre".
Le mieux pour lire un fichier ligne par ligne est d'utiliser fgets.
Code :
|
ce qui donne quelque chose du genre:
Code :
|
Attention, fgets stocke aussi le retour à la ligne dans le tableau, il faut
penser à le supprimer ensuite.
Par contre il faudrait ne stocker que le pseudo dans le fichier et non "Votre
pseudo est : %s\n"
Code :
|
Edit:
Pour transformer une chaine de caractères en nombre, par exemple pour récupérer
l'habileté et la stocker dans un int il existe strtol:
Code :
|
Marsh Posté le 11-05-2014 à 14:57:51
Bonjour à tous,
Je suis débutant en programmation et je dois réaliser un projet mais une erreur intervient dans mon programme et je ne vois vraiment pas comment la résoudre.
Il s'agit d'un "livre-jeu" et pour charger une partie, j'ai utilisé un fichier préalablement crée sauf que dans mon fichier il y a une chaîne de caractères limitée à 20 caractères et donc quand je fais mon fscanf je mets donc %s mais lorsque je met l'opérateur &, il me dit "format %s expects argument of type 'char *' but argument 2 has type char (*)[20]" donc j'ai essayé d'enlever cette limite (que j'avais défini en constante) pour voir mais ça me sort un tas d'erreurs évidemment...
Voici mon code source :
J'espère avoir été clair,
Merci d'avance.