0

看到这个答案

除了最后一句话,我都明白了。

转换说明符“%d”跳过可选的前导空格并(尝试)将输入的其余部分转换为整数(如果没有发生错误)。

我理解关于可选 whitespace的观点。但是“将输入的其余部分转换为整数”是什么意思?我的意思是如果输入本身是整数,为什么它将输入转换为整数?

4

1 回答 1

0

输入本身是一个整数?

不,键盘的输入是字符串(ascii),所以scanf将其转换为整数并存储在变量中。

看到这个:

#include <stdio.h>

int main()
{
    char cnum[] = "123";
    int  num = 0;

    int i=0;
    while(cnum[i])
    {
        num*=10;
        num+= cnum[i]-'0';
        i++;
    }

    printf("%d",num);  //This also converts int to string to print

    return 0;
}

谢谢。

于 2020-05-23T10:11:55.627 回答