Enregistrer entrer standard dans une variable

Résolu
tructruc -  
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

A voir également:

4 réponses

CoKeman Messages postés 9 Statut Membre 1
 
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".
0
tructruc
 
Merci!!
0
fiddy Messages postés 11653 Statut Contributeur 1 847
 
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);
0
CoKeman Messages postés 9 Statut Membre 1
 
Autant pour moi, comme je ne l'utilise jamais j'ai oublier ce petit détail ..
0