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

4 réponses

  1. 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
  2. fiddy Messages postés 441 Date d'inscription   Statut Contributeur Dernière intervention   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
  3. 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