理解轉(zhuǎn)義字符
轉(zhuǎn)義字符顧名思議就是轉(zhuǎn)換字符的意義,一個轉(zhuǎn)義字符書寫上是兩個字符,但只表示一個含義。我們已經(jīng)使用過"\n"將文本換行輸出,它就是一個轉(zhuǎn)義字符。printf()函數(shù)在碰到"\n"時,并沒有直接輸出字符''與字符'n',而是將它們看作一個換行標記,執(zhí)行了換行操作,以使后面的輸出打印在新的一行。
C語言還包括以下幾個常用的轉(zhuǎn)義字符:
\t 橫向制表符
\\ 反斜框
' 單引號
" 雙引號
使用轉(zhuǎn)義字符
1:使用制表符格式化輸出
橫向制表符\t可以用于格式化文本輸出,假如我們要輸出一組表格樣式的數(shù)據(jù),一種方法是使用輸出多個空格對齊,另一種方法就是使用\t。在下面的程序中,我們?yōu)楸砀竦牡?列與第2列應(yīng)用兩次\t以使列之間有更多的間距。
printf( "Name\t\tAge\t\tE-Mail\n"
"GLimix\t\t17\t\tglimix@glimix.com\n"
"Alex\t\t18\t\talex@luna.com\n" );
2:使用反斜框輸出文件路徑
當我們需要在程序的運行日志 或調(diào)試時輸出文件路徑信息,又或者像下面這樣,簡單的將一個路徑輸出到控制臺,這時我們需要使用反斜框轉(zhuǎn)義符來進行路徑轉(zhuǎn)義輸出。
printf( "c\\windows\\program files\\readme.txt\n\n" );
思考一下:如果我將路徑中的'\'換成''會出現(xiàn)什么問題?
你將得到一個編譯錯誤!在字符串輸出過程中,當遇到''時,相當于告訴程序:我后面將跟隨一個字符,請把它解釋為其它的含義。比如說遇到'n'時請換行?,F(xiàn)在在第一個''字符的后遇到了字符'w',組合后形成了'\w',對于C語言而言,這不是一個有效的轉(zhuǎn)義字符,因此編譯會提示你發(fā)生了錯誤。
3:使用雙引號或單引號輸出被引用的文本
如同我們平時寫作一樣,當有一部分文檔內(nèi)容來源于其它文檔,或引用名人警句時,通常我們會使用引號將對應(yīng)的語句包含起來,這時我們就需要轉(zhuǎn)義引號。
printf( "\'Daddy, shush, there is no such thing.\'she said.\n" );
這里是三段程序運行的結(jié)果圖。
但是有個令人沮喪的消息就是\t,在這個簡單的程序中,表格輸出的每一列在左端都能很好的對齊。你可以嘗試更改某條記錄的Name字段使其變得更長,這種對齊將會被打亂,形成很難控制的局面。這時你會發(fā)現(xiàn)單純的使用空格來設(shè)計表頭可能會更合適。
此外,C語言還有'\b'等之類的轉(zhuǎn)義字符,隨著我們的深入學習,將進一步理解使用。