printf和scanf都是c語言中的常用函數(shù),最主要在于功能不同。printf是輸出函數(shù),向外部按照規(guī)定格式輸出數(shù)據(jù),scanf是輸入函數(shù),從外部(鍵盤)讀取輸入的數(shù)據(jù)。
創(chuàng)新互聯(lián)是專業(yè)的巴彥淖爾網(wǎng)站建設(shè)公司,巴彥淖爾接單;提供成都網(wǎng)站建設(shè)、成都做網(wǎng)站,網(wǎng)頁設(shè)計,網(wǎng)站設(shè)計,建網(wǎng)站,PHP網(wǎng)站建設(shè)等專業(yè)做網(wǎng)站服務(wù);采用PHP框架,可快速的進(jìn)行巴彥淖爾網(wǎng)站開發(fā)網(wǎng)頁制作和功能擴(kuò)展;專業(yè)做搜索引擎喜愛的網(wǎng)站,專業(yè)的做網(wǎng)站團(tuán)隊,希望更多企業(yè)前來合作!
一、指代不同
printf是格式化輸出函數(shù),scanf是C語言中的一個輸入函數(shù)。
二、功能不同
printf用于向標(biāo)準(zhǔn)輸出設(shè)備按規(guī)定格式輸出信息,scanf是格式輸入函數(shù),即按用戶指定的格式從鍵盤上把數(shù)據(jù)輸入到指定的變量之中。
三、特點不同
printf的調(diào)用格式為printf,printf是C語言標(biāo)準(zhǔn)庫函數(shù),在stdio.h中定義,輸出的字符串除了可以使用字母,數(shù)字,空格和一些數(shù)字符號以外,還可以使用一些轉(zhuǎn)義字符表示特殊的含義。
scanf是從標(biāo)準(zhǔn)輸入流stdin中讀內(nèi)容的通用子程序,可以說明的格式讀入多個字符,并保存在對應(yīng)地址的變量中。
格式說明由“%”和格式字符組成,如%d%f等。它的作用是將輸出的數(shù)據(jù)轉(zhuǎn)換為指定的格式輸出。格式說明總是由“%”字符開始的。不同類型的數(shù)據(jù)用不同的格式字符。 格式字符有d,o,x,u,c,s,f,e,g等。 如%d整型輸入/輸出,%ld長整型輸入/輸出,%o以八進(jìn)制數(shù)形式輸入/輸出整數(shù),%x以十六進(jìn)制數(shù)形式輸入/輸出整數(shù),%u以十進(jìn)制數(shù)輸入/輸出unsigned型數(shù)據(jù)(無符號數(shù))。%c用來輸入/輸出一個字符,%s用來輸入/輸出一個字符串,%f用來輸入/輸出實數(shù),以小數(shù)形式輸出,(備注:浮點數(shù)是不能定義輸入的精度的,所以,scanf(“%6.2f”,a)這種寫法是“錯誤的”?。。。?e以指數(shù)形式輸出實數(shù),%g根據(jù)大小自動選f格式或e格式,且不輸出無意義的零。scanf(控制字符,地址列表) 格式字符的含義同printf函數(shù),地址列表是由若干個地址組成的表列,可以是變量的地址,或字符串的首地址。如scanf("%d%c%s",a,b,str)
從定義上:庫函數(shù),和用戶定義函數(shù)兩種。
庫函數(shù):由C系統(tǒng)提供,用戶無須定義,也不必在程序中作類型說明,只需在程序前包含有該函數(shù)原型的頭文件即可在程序中直接調(diào)用。在前面各章的例題中反復(fù)用到printf、scanf、getchar、putchar、gets、puts、strcat等函數(shù)均屬此類。
用戶定義函數(shù):由用戶按需要寫的函數(shù)。對于用戶自定義函數(shù),不僅要在程序中定義函數(shù)本身,而且在主調(diào)函數(shù)模塊中還必須對該被調(diào)函數(shù)進(jìn)行類型說明,然后才能使用。
2.putchar() getchar() 輸出輸入函數(shù)只針對單個字符的操作。3.puts(),gets() 輸出輸入函數(shù)可以單個字符操作(但是功能有限的),主要是針對字符串操作。 下面我們定義int a用scanf("%d",a)可以獲取整型a的值,a=getchar(),gets(a)無法從鍵盤獲取數(shù)字用printf("%d",a)可以打印數(shù)字a的值,putchar(a),puts(a)沒法打印數(shù)字方面:printf()和scanf()勝char a用scanf("%c",a) 可以獲取字符a的值,用a=getchar()能獲取a的值,用gets(a)不能獲取用printf("%c",a)可以打印字符a的值 用a=getchar()可以打印a的值,用puts(a)不能打印字符方面:getchar()和putchar()第1 scanf()和printf()第2 gets和puts()敗補充:puts()和gets()能接收和打印單個字符只限制變量是數(shù)組變量例如 char a[50]; gets(a); put(a);你輸入一個字符就會打印一個字符但如果是字符變量 char a='x'; char a; puts(a); 或 gets(a); puts(a);就無法運行char a[50]用scanf("%s",a)能獲取數(shù)組a的值,用a=getchar()無法獲取,用gets(a)能獲取a的值用printf("%s",a)能打印數(shù)組a的值 用putchar(a)無法打印,用puts(a)能打印a的值字符串(數(shù)組)方面:gets()和puts()第一,scanf()和printf()第2,getchar()和putchar()敗可見scanf()和printf()什么都能實現(xiàn),但對字符和字符串操作沒有其他兩種好getchar()和putchar()對字符操作優(yōu)勢明顯,但不能操作數(shù)字變量,字符數(shù)組變量gets()和puts()對字符串操作優(yōu)勢明顯,但也不能操作數(shù)字變量,字符變量scanf()和printf()格式輸入輸出能同時按格式一起輸入輸出字符,數(shù)字,字符串這是其他兩種不能比的所以程序以scanf()和printf()為主,其他兩種作為輔助,發(fā)揮各自的長處。最后來個總結(jié),用程序表示#include stdio.hmain(){ char a,b[50]; printf("請輸入第一個字符:\n"); scanf(" %c",a); getchar(); //獲取前面的回車 printf("第一個的字符為:%c\n",a); printf("請輸入第二個字符:\n"); a=getchar(); printf("第二個字符為:"); putchar(a); putchar('\n'); printf("請輸入第一個字符串:\n"); scanf(" %s",b); getchar(); //獲取前面的回車 printf("第一個的字符為:%s\n",b); puts("請輸入第二個字符串:"); gets(b); puts("第二個字符串為:"); puts(b); }
k=k0xff?0x00ff:k8;其實就是
if(k0xff) {
k=0x00ff;
}else {
k=k8;
}的簡寫。
其實0xff和0x00ff是一樣的,都表示同一個十六進(jìn)制的值。
書上這么寫,沒有錯;至于為什么,就不好說了。
可能是讓你多學(xué)點知識,也可能是現(xiàn)在很多書其實在編寫時并不是很認(rèn)真的。畢竟盡信書不如無書!
后面的k8是把0xff的值右移8位,達(dá)到計算的目的(具體什么目的要看具體內(nèi)容)
getchar(字符輸入函數(shù)),它的作用只是從終端輸入一個字符,沒有參數(shù),函數(shù)的值就是從輸入設(shè)備中得到的字符;puhchar()同理,也只能向終端輸出一個字符;
如:
#include stdio.h
main()
{
char c;
c=getchar();
putchar(c);}
運行結(jié)果:
a 回車
a
scanf()和prinf()是格式輸入/輸出函數(shù),其參數(shù)是可變的,可以連續(xù)輸入,連續(xù)輸出;這兩個函數(shù)在C語言中用的很多,就不多說了
分享題目:c語言各種輸入函數(shù)的特點 c語言輸入函數(shù)用法
URL地址:http://jinyejixie.com/article34/hpdgse.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供響應(yīng)式網(wǎng)站、關(guān)鍵詞優(yōu)化、虛擬主機(jī)、網(wǎng)站設(shè)計、網(wǎng)站排名、域名注冊
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)