我用了循环的方式做了,可为什么没有A的值,是哪里错了吗

任务描述
输入一串字符(以#字符结束),依次输出每个字符及其ASCII码(不包括结束符#)。

输入格式:
一串字符以#结束。

输出格式:
按样例格式输出。

输入样例:
A1?!#
输出样例:
A-65
1-49
?-63
!-33
我写的代码

#include <stdio.h>

int main() {
    char ch;
    scanf("%c",&ch);
    while ((ch = getchar()) != '#')
        printf("%c-%d\n", ch, ch);
    return 0;
}

供参考:

#include <stdio.h>
int main()
{
    char ch;
    while ((ch=getchar()) != '#')
    {
        printf("%c-%d\n",ch,ch);
    }
    return 0;
}