跳脫字元

極為常見

什麼是跳脫字元

跳脫字元顧名思義就是會跳脫

在前面的章節大家應該常常看到換行字元 \n,有沒有想過為什麼其他字元都是一個字,為什麼換行字元是兩個字、還有一個看起來像斜線又不像斜線的東西?其實那個斜線叫做「反斜線」,覺得很難跟真的斜線辨別的話,就想想你平常寫日期的時候都是寫 1/1,所以另外一個方向的斜線是反斜線!而在程式中,我們常在使用跳脫字元時使用它。

那究竟跳脫字元是拿來做什麼的?講白一點,就是用來輸出「特殊的字元」,好比說如果你今天要輸出一些奇怪的顏文字例如 “o"\^o^/,你可能會這樣打:

cout << ""o"";

你會很驚喜的發現你直接過不了編譯了!這是因為雙引號在字串中有特殊的功能,那就是包住字串,所以這邊程式不會把它當作要輸出的東西。但我就是想輸出它怎麼辦?很簡單,只要在顏文字的雙引號前面加一個反斜線就好了:

cout << "\"o\"";

而另外一個例子也相同,因為反斜線本身也有特殊意義,所以如果要輸出反斜線本人也要特殊處理(但正常斜線不用):

cout << "\\^o^/";

更多的跳脫字元

除了上面提到的 \n 之外,還有很多跳脫字元可以使用,這邊列出一些常見的:

  • \t :我們打 code 時常見的 tab(大約是 4 個空白)
  • \\ :反斜線
  • \" :雙引號
  • \' :單引號
  • \0 :空字元(不等於空白)
  • \r :回到該行開頭(後續輸出內容會覆蓋原本該行內容)

tab 這個跳脫字元有個特別的用法,就是可以用來對齊字串,例如:

cout << "1\t2\t3" << endl;
cout << "112\t222\t3123123" << endl;
cout << "123123112\t22\t3123" << endl;

你會發現輸出的結果是這樣的,它竟然神奇的對齊起來了:

1       2       3
112     222     3123123
1233112 22      3123

小測驗

\t 這個跳脫字元代表什麼?

練習題