printf 輸出% 和 \


在小白第一章后面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)
%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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM