c語言中的制表符\t與空格


(本文不討論制表符與空格縮進問題)

編程過程中,我們常常用多個空格或制表符分隔兩個字符串,那么這兩個在顯示效果上有什么區別呢?

比較如下兩行代碼的輸出效果

代碼1:

printf("1\t1\n");
printf("12\t1\n");

代碼2:

printf("1    1\n");   /*1和1之間有4個空格*/
printf("12    1\n"); /*12和1之間有4個空格*/

代碼1輸出結果:

代碼2輸出結果:

很明顯可以看到代碼1輸出結果中右側的兩個1是上下對齊的,而代碼2輸出結果中右側的兩個1上下不對齊,代碼2輸出結果不對其的原因很容易理解,但是為什么代碼1輸出結果中的兩個1會對齊呢?

這牽扯到制表符\t到底跳過幾個空格的問題。

\t到底跳過幾個空格是沒有規定,也沒有標准的,每個輸出設備會規定自己設備上\t會定位到某個整數單位倍數處,比如有的設備規定\t定位到8字符整數倍數處,假定某個字符串在制表符\t的前面有n個字符,那么\t將跳過8-n%8個空格。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM