想问一下,是输入字符直到#为止,输出字符数量,为什么输出的是很奇怪的数字呀

#include
int main(){
char n;
int ret=0;
scanf("%c",&n);
while(n!='#'){
ret++;
scanf("%c",&n);

    if(n=='#'){
        break;
    }
}
printf("%d",ret);



return 0;

}

代码没问题,可简化。%c输入所有输入都算字符。
int main()
{
    //char n;
    int ret = 0;
    // scanf("%c", &n);
    // while (n != '#')
    while (getchar() != '#')
    {
        ret++;
        // scanf("%c", &n);
        // if (n == '#')
        // {
        //     break;
        // }
    }
    printf("%d", ret);

    return 0;
}

代码没什么问题,修改如下,供参考:

#include<stdio.h>
int main()
{
    char n;
    int ret=0;
    scanf("%c",&n);
    while(n!='#'){
        ret++;
        scanf("%c",&n);
        //if(n=='#'){
        //    break;
        //}
    }
    printf("%d",ret);
    return 0;
}