while问题,while((ch=getchar())>='0'&&ch<='9'),结果少首位,

img


do while的可以输出123,为啥这个while它输出的是23。
( ̄ε(# ̄)

你这里ch被覆盖了。

img

可以参考如下:


int main()
{
    int n = 0;
    char ch;
    while ((ch = getchar()) != '\n')
    {
        n = n * 10 + (ch - '0');
    }
    printf("%d\n", n);
    return 0;
}