printf\t选项

liv*_*hak 23 c printf

使用printfC在C 标准输出中打印制表符时,会输出一些空格,显示长度为4个字符.

printf("\t");
Run Code Online (Sandbox Code Playgroud)

在上述情况下,有什么办法可以控制标签宽度吗?任何帮助或建议表示赞赏.

cni*_*tar 47

这是由您的终端控制的东西,而不是printf.

printf只需发送一个\t输出流(可以是tty,文件等),它不会发送多个空格.

  • +1,在我看来,这是一个比被接受的答案更合适的答案. (2认同)

San*_*ker 25

选项卡是一个选项卡.它消耗的空间数是一个显示问题,取决于shell的设置.

如果要控制数据的宽度,则可以使用格式字符串中的width子说明printf符.例如.:

printf("%5d", 2);
Run Code Online (Sandbox Code Playgroud)

这不是一个完整的解决方案(如果该值超过5个字符长,它不会截断),但可能是好的为您的需求.

如果你想要完全控制,你可能必须自己实现它.

  • 实际上对于字符串你可以得到截断:`printf("%5.5s","abcdefg");`将输出"abcde".如果你总是希望输出在字符串小于5个字符的情况下左对齐,请使用`"%-5.5s" (4认同)