非打印字符
ASCLL碼值的使用使c語言中用,使得僅使用整數就可用在計算機上各種字符(包括各國的語言文字,符號),可是一些代表行為的ASCLL字符卻無法打印出來(如:退格、換行、終端響鈴之類的)。這里有兩種方法:
1.使用ASCLL碼值
如蜂鳴的ASCLL值是7.
char beep = 7;
成功了
2.使用一些特殊的符號序列表示一些特殊的字符。這些符號序列叫做轉義序列(escape sequence)
| \a | 警報(ANSI C) |
| \b | 退格 |
| \f | 換頁 |
| \n | 換行 |
| \r | 回車 |
| \t | 水平制表符 |
| \v | 垂直制表符 |
| \ | 反斜杠(\) |
| ’ | 單引號 |
| " | 雙引號 |
| \? | 問號 |
| \0oo | 八進制值(oo代表有效的八進制數,即代表0~7) |
| \xhh | 十六進制值(hh代表有效的八進制數,即代表0~15) |
注意的是警報字符(\a)是否能產生聽到或看到的警報,取決于計算機的硬件(比如我的mbp就沒有聲音。。。。。)
\b
這里并沒有搞懂 \b 的作用,在百度中找的內容是
C++中,\b是退格的意思,相當于你按了回退鍵Backspace。
\b代表退格但是按下退格鍵不一樣,他只是移動當前的光標向前移動一位。比如輸出"asdf\b\b"那么你看到的任然是asdf但是光標在倒數第二個字符上,但是如果你繼續輸出字符接下來的字符就會從倒數第二個字符開始覆蓋,"asdf\b\bc"輸出的是ascf因為倒數第二個字符被覆蓋但是倒數第一個未被覆蓋。
還有
C語言中的反斜杠b(\b)是將輸出的定位前移一個字符的意思(可以在輸出中刪除剛輸出的一個字符)。例如:printf(“abcde”); printf("\bABCD\n"); 后,實際的輸出為abcdABCD(后輸出的A把e覆蓋了)。
我試驗了一下
還有待考究
\f
C語言 \f 走紙換頁是針對打印機輸出時的命令符,表示按當前打印機的設置跳過一頁紙,換到下頁。
\n
區別是顯而易見的
\r
感覺和換行差不多。。。
百度了一下
\n:回車+換行
\r:回車
簡單來說,就是\n把光標轉到下一行行首,\r把光標轉到當前行行首
\t
不夠理解
\t就是tab,指的是制表位,其實可以這么理解——
位空空空位空空空位空空空位空空空位空空空位空空空位空空空
1和5還有9…這些就是制表位,按了tab后自然就會對其到1、5、9這些格子
假設已有2個字符,按一下tab,就移動到了第5個位置上,有3個字符,按一下tab,仍然是移動到第5個位置上…
如果按2下tab,很明顯,上面兩者都會移動到第9個格子上
但有些SHELL定義的制表符不是4個字符,而是8個…所以就變成這樣
位空空空空空空空位空空空空空空空位空空空空空空空
很明顯,按一下tab感覺距離“變長了”
——因此,之所以說是制表位,顧名思義就是對對齊方便做成表格
\v
總結
- 上一篇: linux的基础知识——协议和网络应用程
- 下一篇: 【计算机网络复习】1.1.4 时延、时延