c语言%*2d怎么理解


#include <stdio.h>
int main(){
    int x,y;
    scanf("%2d%*2d%ld",&x,&y);
    printf("%d%d\n",x,y);
    return 0;
}

%*2d用于跳过输入中的2位数字;

第一个%2d用于将输入的前2位的整数赋值给x;

后面的%ld用于从输入获取一个长整型整数,这里是使用%ld获取一个长整型整数赋值给int变量,应该是不太准确,因为它对应的是long int ,但在测试中发现可以将int范围内的值赋值给变量y。

测试如下:

参考链接:


c语言中scanf(“%2d%*2d%2d”,&a,&b);若要输入123456789 则变量a和_百度知道 https://zhidao.baidu.com/question/1539807065447949067.html

int的最大数_int 最大值_WX_Chen的博客-CSDN博客 刷题时经常遇到超大数 所以需要弄清楚 当int是4字节即32位时,最大数为(2^31)-1=2147483647,是10位数 int是有符号的,范围是-2147483648~2147483647 unsigned int 0~4294967295 unsigned long 0~4294967295long 2147483648~214748..._int 最大值 https://blog.csdn.net/kl1411/article/details/57462632

scanf用法简介_Adz1119的博客-CSDN博客 对scanf的简单介绍,适合新手阅读_scanf https://blog.csdn.net/Adz1119/article/details/128209859


  
#include <stdio.h>
int main(){
    
    int x,y;
    // http://ascii.wjccx.com/
    // https://zhidao.baidu.com/question/1539807065447949067.html
    // https://blog.csdn.net/kl1411/article/details/57462632
    // https://blog.csdn.net/Adz1119/article/details/128209859
    scanf("%2d%*2d%ld",&x,&y);
    printf("%d %d\n",x,y);
    
 
    return 0;
    
}

img

  • 以下回答由chatgpt基于相关博客总结生成:

    %*2d是C语言中的格式控制符,用于输出一个占位符。下面是详细解释和示例代码:

    %:这是格式控制符的开始符号。 *:表示跳过这个参数,不进行输出。 2d:表示输出一个整数,并且占据2个字符的宽度。

    具体来说,%*2d的作用是输出一个占位符,占据2个字符的宽度,并跳过对应参数的输出。

    示例代码:

    #include <stdio.h>
    
    int main() {
        int num = 123;
        printf("%*2d\n", 4, num);
        return 0;
    }
    

    上面的代码中,%*2d将输出一个占位符,并占据2个字符的宽度,结果如下:

    123
    

    其中,4代表占位符要占据的宽度,num是要输出的整数。所以最终输出结果为3个空格和数字123。

    希望上述解答能够帮助到你,如果还有任何疑问,请随时追问。