Я пытаюсь напечатать значения 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
Переменная t автоматически не устанавливается в 0 компилятором.Поэтому вам нужно инициализировать t с 0. Если printf не печатает сразу, это означает, что данные буферизуются.Если вы хотите увидеть сразу, вы можете рассмотреть возможность очистки стандартного вывода сразу после printf.
Я видел это несколько раз, и не знаю основной причины, но решение, которое работает:
scanf ("\ n% c", & ch);
Возможноимеет отношение к буферизованному символу конца строки.