读书人

printf(quot;\nCC\toptions\tfile.[cC]\nquot;

发布时间: 2014-01-12 00:03:16 作者: rapoo

printf("\nCC\toptions\tfile.[cC]\n");打印结果是什么
请问这句:printf("\nCC\toptions\tfile.[cC]\n");

为什么打印出来的结果中file前面的是一个空格?

[解决办法]
\t是一个制表符位, 默认8个空格长度, 它会跳到下一个8的倍数的整数列上
options已经占了7位,/t只是向后移动一位
[解决办法]
\t是一个制表符位, 默认8个空格长度, 它会跳到下一个8的倍数的整数列上(从第0列开始数)
options已经占了7位,/t只是向后移动一位
[解决办法]

引用:
调试的结果显示:CC options file.[cC]
从结果上看,明显第一个\t处跳转位置正确,而后面的\t应该是接着前面的options显示后,再跳一个制表位(即7个空字符)才显示后面的file这个单词才正确呀?可结果显示,第二个\t只后跳了一个空字符。求解释。

可以理解成为\t显示的长度是[1,8],至少是一个空位(前面有7个字符时),至多8个空位(前面已经对齐到8的整数倍)
具体是1还是8.显示完\t后一行的长度为8的整数倍为准.
options 7个字符,加一个\t, 这是只要一个空格的位置,就可以对齐到8的整数倍位置,即'f'显示在第8列上(base on 0).
试试
$ echo -e "\nCC\toptions\tfile.[cC]\n"

CC options file.[cC]

$ echo -e "\nCC\toptions1\tfile.[cC]\n"

CC options1 file.[cC]

(代码显示有问题,使用了空格代替制表符)

读书人网 >C语言

热点推荐