Enregistrer entrer standard dans une variable
Résolu
tructruc
-
CoKeman Messages postés 9 Statut Membre -
CoKeman Messages postés 9 Statut Membre -
Bonjour,
je souhaite enregistrer 2 mots, séparés par un espace, entrés dans l'entrée standard dans une seule variable.
Lorsque je fais un:
scanf("%s", var);
je n'enregistre que le premier mot...
Je ne peux pas faire un:
scanf("%s %s", var1, var2);
car je ne dois pas toujours entrer un argument
Merci pour votre aide
je souhaite enregistrer 2 mots, séparés par un espace, entrés dans l'entrée standard dans une seule variable.
Lorsque je fais un:
scanf("%s", var);
je n'enregistre que le premier mot...
Je ne peux pas faire un:
scanf("%s %s", var1, var2);
car je ne dois pas toujours entrer un argument
Merci pour votre aide
4 réponses
-
Evite d'utiliser le scanf quand tu programme, c'est assez dégeux..
Sinon, essaie comme ça :
scanf("%[^\n]", nom_var);
il faut que nom_var soit de type char * et soit assez grand pour recevoir tout ce que tu comptes lui envoyé, sinon tu vas segfault!
En faisant un "%[^\n]", tu dis : je veux tout ce qu'on tape sur l'entrée standard jusqu'à ce qu'on tape un "\n". -
-
Effectivement, vaut mieux utiliser fgets().
En revanche, si on désire utiliser scanf(), je conseille de préciser la taille pour éviter le segfault comme tu dis :
char buf[16];
scanf("%15[^\n]", buf); -
Autant pour moi, comme je ne l'utilise jamais j'ai oublier ce petit détail ..