谁可以解释这个程序的输出?

Jer*_*vis 1 c

为什么以下程序同时产生两个输出消息,而不要求用户输入任何信息?

#include <stdio.h>
#include <ctype.h>

int main(void) 
{
    char input;
    do {
        printf("Enter a single character: \n");
    scanf("%c", &input);
        printf("The ordinal value is %d. \n",input);    

        } while(input != '#'); 
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

输出如下:

Enter a single character:
s
The ordinal value is 115.
Enter a single character:
The ordinal value is 10.
Enter a single character:
Run Code Online (Sandbox Code Playgroud)

gee*_*aur 5

除非另有说明,否则一次读取终端输入; scanf读取指定的一个字符,然后保留您键入的换行符,以便在输入缓冲区中发送该行以进行下一次循环传递.考虑按行读取输入并使用sscanf()或类似解析这些行.