Это простая программа, которая пытается получить символы, пока не будет введено «0». Но когда я выполняю это в Code :: Blocks 17.12, терминал всегда, кажется, получает два символа в качестве ввода перед печатью введенного символа.
char temp;
do {
printf("Enter character: ");
scanf("%c ",&temp);
printf("Character entered: [%c]\n",temp);
}while(temp!='0');
Результат, который я получил, был
Enter character: a
b
Character entered: [a]
Enter character: c
Character entered: [b]
Enter character: d
Character entered: [c]
Enter character: e
Character entered: [d]
Enter character: 0
Character entered: [e]
Enter character: 0
Character entered: [0]
Мой ожидаемый результат был
Enter character: a
Character entered: [a]
Enter character: b
Character entered: [b]
Enter character: c
Character entered: [c]
Enter character: c
Character entered: [c]
Enter character: 0
Character entered: [0]