Je suis nouveau dans le langage de programmation C, j'ai écrit un code simple qui lit deux valeurs "char" et les imprime à l'écran mais le second a une valeur vide pour une étrange raison. Qu'est-ce qui ne va pas avec mon code?

Char c;
Scanf(“%c”,&c);
Printf(“Value:%c”,c);
Scanf(“%c”,&c);
Printf(“Value:%c”,c);

Sortie: Valeur: g Valeur:

0
Jobert001 3 nov. 2019 à 19:48

1 réponse

(Ceci est un commentaire, mais les commentaires sont difficiles à formater)

Il n'y a rien de mal avec votre code (à part l'échec de la vérification de la valeur retournée par scanf et du traitement des erreurs ou des entrées incorrectes). Considérer:

#include <stdio.h>
int
main(void)
{
        char c;
        scanf("%c",&c);
        printf("Value:%c",c);
        scanf("%c",&c);
        printf("Value:%c",c);
        return 0;
}
$ gcc a.c
$ printf 'abc' | ./a.out
Value:aValue:b

Peut-être que ce qui ne va pas, c'est que vous avez des retours à la ligne dans votre entrée. (Par exemple, vous saisissez des données de manière interactive et oubliez que lorsque vous appuyez sur "retour", une nouvelle ligne est insérée dans le flux d'entrée.)

1
William Pursell 3 nov. 2019 à 16:56