我在 stackoverflow 和其他网站上看到了很多问题和答案,但我很困惑,当 %2d 创建了 2 个字符空格并且我们想要执行此代码时,会发生什么?
int a = 20011;
printf("%2d\n",a);
Run Code Online (Sandbox Code Playgroud)
根据我的观点,它应该只打印 2 个字符宽,但是当我们打印时,它会打印整个字符。为什么?
我已经编辑了这个问题。现在我想知道 - 符号的用途。我读过很多文章说 - 符号告诉左对齐但是当它被使用时给出例子。例如:
int str[] = "skgskg";
printf("%2s\n",str);
Run Code Online (Sandbox Code Playgroud)
它指定输出的 最小宽度。如果指定的宽度大于输出本身的大小(与您的情况相反),则输出长度与指定宽度之间的差异将在输出之前打印为空格。
例如,printf("%2d\n", 12345);将只打印12345,因为12345有 5 位数字,但指定的宽度仅为 2。
但是,printf("%10d\n", 12345);将打印_____12345(前 5 个空格12345),因为宽度之间的差异超过输出长度 5。