C語言 轉義符\t佔用幾個空格
阿新 • • 發佈:2019-01-27
這個問題,在你學習程式設計過程中可能會考慮到,有時為了位元組對齊而使用轉義符中\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