Comment se fait-il que la fonction fflush (stdin) ne fonctionne pas?

Ma question principale est pourquoi est-ce que le fflush (stdin)? la fonction ne fonctionne pas? Chaque fois que je lance le code, je ne parviens pas à obtenir la deuxième entrée avec space ex. Bonjour tout le monde mais au lieu de cela je reçois Hello ?? Merci

#include  main(){ int x; double y; char ssortingng[100]; /* * ssortingng input */ printf("Enter one word: "); scanf("%s", ssortingng); // note there is no & before ssortingng */ printf("The word you entered was >>%s<<\n"); printf("Enter many words: "); fflush(stdin); // >%s<<\n"); getchar(); } 

    Parce que fflush(stdin) est un comportement indéfini. fflush() n’est défini que par la norme C pour les stream de sortie et met à jour les stream dont la dernière opération était une sortie.

    Si vous obtenez une sortie, c’est que le code que vous avez affiché dans la zone de description du problème n’est pas le code que vous utilisez réellement.

    En ce qui concerne votre déclaration:
    Je ne suis pas en mesure d’obtenir la deuxième entrée avec space ex. Bonjour tout le monde mais au lieu de cela je reçois Hello ?? .
    Sans le paramètre supplémentaire dans l’instruction printf() , vous n’obtiendrez aucune sortie et une erreur d’exécution.

    La ligne (les deux endroits) printf("The word you entered was >>%s<<\n"); a besoin d'un autre paramètre, add ,ssortingng , comme ceci:

      printf("The text you entered was >>%s<<\n", string); 

    Cela résoudra votre problème.

    Voici la sortie après avoir ajouté le paramètre ssortingng dans printf() ( sans supprimer fflush() )
    entrez la description de l'image ici
    Apparemment, fflush(stdin); n’est-ce pas vraiment le problème ici, du moins pour le problème déclaré