weixin_45758339 2021-04-21 09:28 采纳率: 50%
浏览 35
已采纳

 printf("%*.*d", len, 0, val);0输出为空格

	void  Solutions::myprint(int len, int val) {
		 printf("%*.*d", len, 0, val);
		
	}

编程环境 VS2019 语言C++

如果val为0则输出为空格,这是为什么?请大神帮帮忙!感谢!

  • 写回答

2条回答 默认 最新

  • 正在学C++ 2021-04-21 10:04
    关注

    printf("%*.*d",总共占的位数,正式输出的数占的位数(如果不够前面补0),正式输出的整型);

    按照你的,输出的所有内容会占用len个格子且右对齐。正式输出的数如果位数多于0则全部输出,如果为0则不输出

    如果val==1那么输出        len-1个空格和1

    如果val==123那么输出        len-3个空格和123

    如果val==0那么输出        len个空格(什么都不输出)

    如果改变你的代码:printf("%*.*d",len,3,val);表示输出的数如果不够3位前面要补零

    那么如果val==0输出        len-3个空格和000

    如果val==1那么输出        len-3个空格和001

    你可以测试一下,如果输出浮点会怎么样?浮点数可是有小数的,整型不会输出小数

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
    weixin_45758339 2021-04-21 15:28

    明白了,十分感谢!

    1
    回复
    正在学C++ 回复 weixin_45758339 2021-04-21 15:33

    其实我也不懂,第一眼看到你这个问题一脸懵逼。然后我写代码多次测试,找到了它的规则。你也可以这样,遇到不懂的一些代码,多测试几次,把参数变一变,找它的规矩,然后得出结论。这也是慢慢成长,慢慢积累的过程。

    回复
查看更多回答(1条)
编辑
预览

报告相同问题?

手机看
程序员都在用的中文IT技术交流社区

程序员都在用的中文IT技术交流社区

专业的中文 IT 技术社区,与千万技术人共成长

专业的中文 IT 技术社区,与千万技术人共成长

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

客服 返回
顶部