Saisir un char* pour le retourner - C - Programmation
Marsh Posté le 07-01-2005 à 19:00:28
Bonjour Sedrilo,
pour plus de careté, utilise les balises [ cpp] et [ /cpp] (supprime l'espace juste après le crochet ouvrant),
indente correctement ton code et une pluie de réponses résolvera tout tes problèmes...
Marsh Posté le 07-01-2005 à 19:03:08
sedrilo a écrit : Comment saisir un caractère puis retourner le pointeur sur celui-ci? |
Tu veux sans doute dire "comment saisir une chaine de caractère et retourner son adresse ?"
Il y a 3 solutions.
char s[123) |
char *f() |
char *f() |
Citation : |
On peut utiliser scanf(), mais c'est une fonction difficile. On préfère fgets().
Marsh Posté le 07-01-2005 à 19:32:56
Ok merci Emmanuel, je suis passé par le malloc et j'ai pu retourner son adresse!
Marsh Posté le 10-01-2005 à 17:37:27
moi je dirais un truc du genre c aussi possible.
scanf("%20s", nom);
Marsh Posté le 07-01-2005 à 18:51:39
Comment saisir un caractère puis retourner le pointeur sur celui-ci?
Apparement, on peut pas utiliser direct la fonction scanf("%s", nom) et il faut scanner uns à uns les caractères... ?
J'ai tenté :
char nom[21];
int i=0;
printf("Quel nom voulez-vous donner à votre joueur (20 caract. max) ? " );
while((nom[i]=getchar())!='\n')
{
i++;
}
nom[i]='\0';
printf("Votre nom :" );
i=0;
while(nom[i]!='\0')
{
putchar(nom[i]);
i++;
}
printf("\n" );
return nom;
Mais ici nom est local et la compilation me renvoie :
cc -Wall -Werror interfaceText.c main.c -o interfaceText
interfaceText.c: In function `demanderEtAfficherNomJoueur':
interfaceText.c:61: warning: function returns address of local variable
make: *** [graphik] Erreur 1
Comment renvoyer un pointeur sur ma chaine de caractère saisie?
J'ai essayé de ruser en créant un autre char* et en faisant un strcpy, mais j'ai eu un segmentation fault.
Merci.