Enregistrer entrer standard dans une variable

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

4 réponses

  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".
    1. Contributeur
      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);
      1. Autant pour moi, comme je ne l'utilise jamais j'ai oublier ce petit détail ..