這段程式的9 9乘法表中,區隔算式的符號是" ",但表格的形狀會跑掉(應該是因為有些等號後面是個位;有些是十位)
//complete 9*9 mutiply table with do-while loop
#include <iostream>
using namespace std;
int main()
{
int i;
int j;
for (i=1;i<=9;i++)
for(j=1;j<=9;j++)
{
cout<<i<<"*"<<j<<"="<<i*j<<" ";
if (j==9)
{
cout<<"\n";
}
}
return 0;
}
![https://ithelp.ithome.com.tw/upload/images/20230319/20158727s3aTd8P0Vj.png]
而當我把" "改成"\n"時就會恢復正常
![https://ithelp.ithome.com.tw/upload/images/20230319/20158727qxayVFDhIh.png]
請問是為什麼呢?
程式裡有兩個特殊字元
\t 是 tab,是在每一個 x*y=z
後面(eg.每列有9次)
\n 是換列,是在每一列
最後面(eg.每列只有1次)
至於三個空白和 tab 有什麼差別
最好的方法就是打開 word
然後輸入
//b 代表空白鍵
1*1=1bbb1*2=2bbb1*3=3bbb....
//t 代表 tab 鍵
2*1=2t2*2=4t2*3=6t...
立馬就感覺到差別了
另外
先前的問題如果已經解決了
記得選最有幫助解答以結案
首先,你要先了解一件事。
程式文字字串中,有幾種特殊符號。
分別是「定位符、跳格符、TABS(t)」「返回符、歸位符、回車符(r)」「換行符(n)」
先了解這三種。
定位符T:這如果有常使用WORD的話。因該會對它不陌生。
其一般就是固定跳格到第幾個位元位置上。大多數會用在排版上。
回車符R:認真來說,這算是WINDOWS系統中才會有的解釋。在UNIX系統上,則會將其視為一個無效字元。簡單來說。它就是將指標移回開頭的位置。
其實為何在WINDOWS上會需要這樣的動作,依據我很早期找到的資料說明。有人說是當時的工程師只能將換行記號放到開頭上。所以才需要先做一次回車才能下換行符。
如果直接在後面放換行符。則會沒有作用。實際情況我到未深入了解就是了。
換行符N:就字面的意思。就是換行了。
回來您的問題。其實「海綿寶寶」給你的就是利用了「定位符」來達到讓您呈現的資料排好。
其實上面三種符號。並不單純的只是C語言。幾乎所有的程式語言都有這樣的符號。
孫守真任真甫
t(定位符)認真來說,並不等於是table。
\r\n也不是C語言專有的。而是如果要運行在WINDOWS系統上。
如要換行則都要用 \r\n 。這不管任何程式語言都一樣。
阿門
感恩 ㊣浩瀚星空㊣ 菩薩慈悲解釋,原來末學對「\t」誤解了,但是用 table 方便記憶 tab 和 \t 是什麼意義罷了。自己是疏忽了,經過大神您這樣地提起,才想起來曾經讀過 Environment.NewLine 在不同作業系統下會有不同的值,是自己只會 C# VBA VB.NET,只在用這兩種語言的一點皮毛就淡忘了。……
程式設計上基礎觀念、概念的建立真的很重要!這是末學一路上自學摸索下的心得。感恩感恩 讚歎讚歎㊣浩瀚星空㊣ 菩薩慈悲 南無阿彌陀佛
對了 順便請教大神菩薩您,為什麼大名前後還要加上㊣呢 ^^ 感恩感恩 南無阿彌陀佛
其實感覺用 table 理解沒有什麼問題嗎?
只是比較是「可以製造一個 table 的字元」這樣
而「可以製造一個 table」可以寫成動詞 tabulate(製表)
(table 的拉丁文字源 tabula,而字根 -ate 是「做⋯⋯」的意思)
https://zh.wikipedia.org/wiki/%E8%A3%BD%E8%A1%A8%E9%8D%B5
https://en.wikipedia.org/wiki/Tab_key
那個㊣其實沒啥。就像是一種符號的標識。
其實原本是用☆的。後來才改成用㊣。
這已經改完好幾年了。也很懶的換了。
再來,其實不用table來做解釋。其原因是某些編輯器或是程式語言。
它是真的有製表用的符號。
所以才需要做區分。免得被誤解。