Partage
  • Partager sur Facebook
  • Partager sur Twitter

Comment récupérer une saisie avec des espaces

Sujet résolu
24 juin 2019 à 21:01:17

Bonjour 

Depuis quelques temps j'ai commencer le C mais je suis confronté a un problème. Je n'arrive pas a récupérer une saisie via une chaine de caractères, je connais bien le printf mais quand je fait un espace alors je m'en remet a vous. J'ai aussi vu sur des forums la fonction fget qui serais la solution mais je n'ai pas trop saisie comment l'utiliser.

-
Edité par french-watson 24 juin 2019 à 21:15:53

  • Partager sur Facebook
  • Partager sur Twitter

Aucune énigme est exempte de solution

24 juin 2019 à 21:29:12

fgets 
char *fgets(char *s, int size, FILE *stream);
Pour une saisie clavier s'utilise avec stdin comme pointeur FILE.
exemple : 
#include <stdio.h>

int main(void)
{
    char Buffer[256];

    fgets(Buffer, 256, stdin);
    puts(Buffer);

    return 0;
}
Particularité il met le retour de chariot '\n' dans le buffer.
  • Partager sur Facebook
  • Partager sur Twitter
24 juin 2019 à 23:19:50

Bonsoir :)

Tu peux aussi te référer au cours "Apprenez à programmer en C" à la partie "la saisie de texte sécurisée"

Tu aura un chapitre entier qui t'expliquera :

  • Pourquoi les espaces ne fonctionnent pas avec scanf.
  • Pourquoi scanf est "dangereux".
  • Comment se servir de fgets.
  • Et aussi vaguement ce qu'est stdin ;)

Voilà ^^

-
Edité par Le_Wasabi_Ca_Pik' 24 juin 2019 à 23:25:28

  • Partager sur Facebook
  • Partager sur Twitter

"Il faut toujours viser la lune, car même en cas d'échec on atterit dans les étoiles". -Oscar Wilde-