C语言中的转义字符 \t 输出时占用几个空格?

测试数据

#include <stdio.h>

void main() {
    printf("\t123456789\n");
    printf("1\t23456789\n");
    printf("12\t3456789\n");
    printf("123\t456789\n");
    printf("1234\t56789\n");
    printf("12345\t6789\n");
    printf("123456\t789\n");
    printf("1234567\t89\n");
}

运行结果

        123456789
1       23456789
12      3456789
123     456789
1234    56789
12345   6789
123456  789
1234567 89

总结规律

规律:space num = 8-(n%8)
注意:
    这里 n 指的是从当前的 \t 开始往前的所有可显字符的个数,如果往前再次遇到 \t、\r、\n 时,则计数停止。
    如果遇到其它不可显示转义字符时,则忽略不计,也不停止计数。
    但是遇到占位符,例如:%d、%10d,这种占位符输出了几个字符,就代表占了几个字符的位置。

特殊:\r\t,当前行,从头开始,输出 8 个空格
特殊:\n\t,换一行,从头开始,输出 8 个空格
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章