À l'aide de la fonction scanf dans la boucle while

Je tente de formater un espace délimité par la saisie de l'utilisateur pour une programmation d'affectation.

Essentiellement, l'entrée se compose d'un nombre arbitraire d'expressions

L integer integer integer integer et C integer integer integer.

Par exemple: L 1 1 5 7 C 4 5 3.

Jusqu'à présent, j'ai réussi à extraire les nombres entiers fonction sur le caractère initial, et peut parcourir la chaîne à l'aide de la fonction scanf:

char a;
while(scanf("%c", &a) == 1){
    if(a == 'C'){
        int inputX, inputY, inputR;
        scanf("%d %d %d", &inputX, &inputY, &inputR);
        printf("%d %d %d\n", inputX, inputY, inputR);
    }
    else if(a == 'L'){
        int x1, y1, x2, y2;
        scanf("%d %d %d %d", &x1, &y1, &x2, &y2);
        printf("%d %d %d %d\n", x1, y1, x2, y2);
    }
}

Malheureusement, bien que ce sorties souhaité entiers, la boucle (et la saisie de l'utilisateur l'invite de commande) n'est pas arrêter.

Quelqu'un pourrait-il svp m'éclairer pourquoi ce qui se passe?

Vous nourrissez-vous un EOF (par Ctrl+D sous Linux ou Ctrl+Z dans Windows) à la fin de votre entrée?
l'alimentation d'une EOF se termine à l'entrée alors que le programme est en cours d'exécution, mais je m'attends à mettre fin à Enter.

OriginalL'auteur Julian Laval | 2013-11-11