在小白第一章后面1.5.3中有仨題:
1 試着把%d中的兩個字符(百分號和小寫字母d)輸出到屏幕。
2 試着把\n中的兩個字符(反斜線和小寫字母n)輸出到屏幕。
3 像 1、2這樣需要“特殊方法”才能輸出的東西還有哪些?哪些是printf函數引起的問題,哪些不是。
首先 2 很簡單 就 printf("\\n")就行 ,這就是需要轉義\。轉義字符還有很多。
其次 1 跟2不一樣,vc表示 不能識別/%,那就依靠強大的搜索引擎。
方法為
#include <stdio.h> int main(void) { printf("%c\n", '%'); return 0; }
和
printf("%%d");//這個 puts("%d");//或者是這個
其三,當需要顯示類似的東西是,/容易讓編譯器理解為轉義字符。在printf函數中%是用來表示格式化輸出的,所以想要在printf中顯示%需要在2中的方法。
第四,那么/1 會顯示什么呢,這個在轉義字符的百度百科上受到到了疑惑,來源如下
http://baike.baidu.com/link?url=FXPtbNIAaeHcVaEGDvpL__ivSz_a3zaCn1l7v3CdA3hiXSGom5hNr7n-_my6SthU
“所有的ASCII碼都可以用“\”加數字(一般是8進制數字)來表示。而C中定義了一些字母前加"\"來表示常見的那些不能顯示的ASCII字符,如\0,\t,\n等,就稱為轉義字符,因為后面的字符,都不是它本來的ASCII字符意思了。”
自己試了試 ,顯示全部的ascii碼
for(i=0;i<200;i++) printf("%c",i);
雖然受到了百度百科的啟發,但感覺想要用“/”+“變量名”的方法來寫個循環式,來表示ascii碼就走錯路了。
第五 貼上/ 和%
%的
%A 浮點數、十六進制數字和p-記法(C99)
%c 一個字符
%d 有符號十進制整數
%e 浮點數、e-記數法
%E 浮點數、E-記數法
%f 浮點數、十進制記數法
%g 根據數值不同自動選擇%f或%e.
%G 根據數值不同自動選擇%f或%e.
%i 有符號十進制數(與%d相同)
%o 無符號八進制整數
%p 指針
%s 字符串
%u 無符號十進制整數
%x 使用十六進制數字0f的無符號十六進制整數
%X 使用十六進制數字0f的無符號十六進制整數
%% 打印一個百分號
轉義字符
|
意義
|
ASCII碼值(十進制)
|
\a
|
響鈴(BEL)
|
007
|
\b
|
退格(BS) ,將當前位置移到前一列
|
008
|
\f
|
換頁(FF),將當前位置移到下頁開頭
|
012
|
\n
|
換行(LF) ,將當前位置移到下一行開頭
|
010
|
\r
|
回車(CR) ,將當前位置移到本行開頭
|
013
|
\t
|
水平制表(HT) (跳到下一個TAB位置)
|
009
|
\v
|
垂直制表(VT)
|
011
|
\\
|
代表一個反斜線字符''\'
|
092
|
\'
|
代表一個單引號(撇號)字符
|
039
|
\"
|
代表一個雙引號字符
|
034
|
\0
|
空字符(NULL)
|
000
|
\ddd
|
1到3位八進制數所代表的任意字符
|
三位八進制
|
\xhh
|
1到2位十六進制所代表的任意字符
|
二位十六進制
|
第六 來源 http://www.kuqin.com/language/20080420/7060.html
http://baike.baidu.com/link?url=FXPtbNIAaeHcVaEGDvpL__ivSz_a3zaCn1l7v3CdA3hiXSGom5hNr7n-_my6SthU
http://zhidao.baidu.com/question/401467259.html
http://zhidao.baidu.com/question/557217994.html