1. 程式人生 > >C語言 轉義符\t佔用幾個空格

C語言 轉義符\t佔用幾個空格

       這個問題,在你學習程式設計過程中可能會考慮到,有時為了位元組對齊而使用轉義符中\t,但是到底\t佔用幾個空格呢?

下面我們首先通過程式來體驗下,然後在總結

#include <stdio.h>

int main()
{
    printf("123456\t123\t45\n");
    printf("12\t123456\t78\n");
    printf("--------------------------------\n");
    
    printf("1234567\t123\t45\n");
    printf("12\t123456\t78\n");
    printf("--------------------------------\n");
    
    printf("12345678\t123\t45\n");
    printf("12\t123456\t78\n");
    printf("--------------------------------\n");
    
    printf("123456789\t123\t45\n");
    printf("12\t123456\t78\n");
    printf("--------------------------------\n");
    
    printf("123456781234\t123\t45\n");  
    printf("12\t123456\t78\n");
    printf("--------------------------------\n");      
    return 0;
}

通過上面結果我們可以看出來,\t對應空格次數並不是固定的,並不是我們認為的4個空格或者8個空格

那麼有什麼規律呢。給個簡單公式

令  num = |n-8|%8, 其中n表示\t前面的字元佔的位置(前面的字元也可能是轉換說明,如%d,%10d等)。

那麼\t對應的空格的個數 spaceNum,有

所以我們看到當\t前面為123456時,後面有兩個空格;當\t前面為1234567時,後面有1個空格,而當前面正好為12345678時,後面跟8個空格

當前面為123456781234時,後面的空格數量為  |12-8|%8=4