分享
三行代码  ›  专栏  ›  技术社区  ›  NSR

它是什么意思?%d将输入的其余部分转换为整数?

  •  0
  • NSR  · 技术社区  · 1 周前

    See this answer

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

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

    我明白关于 . 但是 意思是?我的意思是,如果输入本身是一个整数,为什么它要将输入转换成整数?

    1 回复  |  直到 1 周前
        1
  •  0
  •   Sri lakshmi kanthan    1 周前

    输入本身是一个整数?

    不,键盘的输入是字符串(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;
    }