printf说明符不能按预期工作

Lyr*_*yrk 1 c printf

#include <stdio.h>

int main(void){

printf("%2s\n","Monday"); //output: Monday
getch();
}
Run Code Online (Sandbox Code Playgroud)

以上代码打印整个星期一.我想要它打印"Mo".为什么这在Visual Studio中不起作用或我编码错误?

use*_*342 6

%2s指定填充,它永远不会缩短字符串.要打印比字符串中存在的字符少的字符,请将精度指定为%.2s:

printf("%.2s", "Monday"); //output: Mo
Run Code Online (Sandbox Code Playgroud)

另请注意,这getch不是标准C函数.