getchar () звонит только через раз - PullRequest
0 голосов
/ 04 марта 2012

При использовании Ch Standard Interpreter, getchar() запускает только все остальные строки.

C:/> char a = getchar();
C:/> char b = getchar();
b
C:/> char c = getchar();
C:/> char d = getchar();
d

У меня та же проблема при использовании scanf("%c", &a); в Vim заявление пропускается.

printf("\nType of Something\nA for SomethingA\nB for SomethingB "
        "\nC for SomethingC\n\nSelect (A,B,C) > ");
char letter = getchar(); // This statement gets skipped
return 0;

1 Ответ

2 голосов
/ 04 марта 2012

Когда вы набираете «A» на клавиатуре, вы сначала нажимаете «A», а затем вы нажимаете «ENTER», верно? Таким образом, getchar() или scanf("%c", ....) получает два символа для чтения: «A» и символ новой строки из клавиши «ENTER».

Если вы используете свой код в цикле или просто несколько раз, первый метод getchar () будет читать символ новой строки из предыдущего ввода.

...