C печатает один символ больше без значения - PullRequest
1 голос
/ 29 ноября 2010

Я пытаюсь напечатать значения ASCII из 3 символов типа char.Когда я вводю первый символ, он не печатает значение символа.После первого символа он начинает давать значение.

#include <stdio.h>
int main()  {
    char ch;
    int t;
    while(t < 3){
        scanf("%c\n", &ch);
        printf("%c - %d\n", ch,ch);
        t++;
    }
}

http://i54.tinypic.com/2mdqb7d.png

Ответы [ 2 ]

2 голосов
/ 29 ноября 2010

Переменная t автоматически не устанавливается в 0 компилятором.Поэтому вам нужно инициализировать t с 0. Если printf не печатает сразу, это означает, что данные буферизуются.Если вы хотите увидеть сразу, вы можете рассмотреть возможность очистки стандартного вывода сразу после printf.

1 голос
/ 29 ноября 2010

Я видел это несколько раз, и не знаю основной причины, но решение, которое работает:

scanf ("\ n% c", & ch);

Возможноимеет отношение к буферизованному символу конца строки.

...