新聞中心
c語(yǔ)言格式輸入輸出函數(shù)
一:格式輸出函數(shù)printf()
創(chuàng)新互聯(lián)公司作為成都網(wǎng)站建設(shè)公司,專注網(wǎng)站建設(shè)、網(wǎng)站設(shè)計(jì),有關(guān)成都定制網(wǎng)頁(yè)設(shè)計(jì)方案、改版、費(fèi)用等問(wèn)題,行業(yè)涉及成都石雕等多個(gè)領(lǐng)域,已為上千家企業(yè)服務(wù),得到了客戶的尊重與認(rèn)可。
1、調(diào)用形式一般為:printf("格式化控制字符串",輸出表列);
2、格式化控制字符串用于指定輸出格式,它有三種形式:
1、格式說(shuō)明符:規(guī)定了相應(yīng)輸出表列內(nèi)容的輸出格式,以%打頭,如%d、%o等
2、轉(zhuǎn)義字符:用來(lái)輸出轉(zhuǎn)義字符所代表的控制代碼或者特殊字符,比如常用的‘\n'、‘\t'
3、普通字符:需要原樣輸出的字符。
3、輸出表列為若干需要輸出的數(shù)據(jù)項(xiàng),它與格式說(shuō)明符在數(shù)量和類型上一一對(duì)應(yīng);
4、格式字符m指定輸出數(shù)據(jù)所占寬度,n對(duì)實(shí)數(shù)表示輸出n位小數(shù),對(duì)字符串表示截取的字符個(gè)數(shù),+表示右對(duì)齊,通常省略。
—表示左對(duì)齊,l用于長(zhǎng)整型數(shù)據(jù),可加在d、o、x、u前,更多格式說(shuō)明符及其組合形式如下所示:
格式字符
數(shù)據(jù)對(duì)象
輸出形式
數(shù)據(jù)輸出方法
%(+)-md
int
unsigned
int
short
unsigned
short
char
十進(jìn)制整數(shù)
1、無(wú)m按實(shí)際位數(shù)輸出
2、有m輸出m位;超過(guò)m位,按實(shí)際位數(shù)輸出,不足補(bǔ)空格
3、有+(默認(rèn)為+)右對(duì)齊(左補(bǔ)空格)
4、有-左對(duì)齊(右補(bǔ)空格)
%(+)-mo
八進(jìn)制整數(shù)
%(+)-mx
十六進(jìn)制整數(shù)
%(+)-mu
無(wú)符號(hào)整數(shù)
%(+)-mld
long
unsigned
long
十進(jìn)制整數(shù)
%(+)-mlo
八進(jìn)制整數(shù)
%(+)-mlx
十六進(jìn)制整數(shù)
%(+)-mlu
無(wú)符號(hào)整數(shù)
%(+)-m.nf
float
double
十進(jìn)制小數(shù)
%(+)-m.ne
十進(jìn)制指數(shù)
%(+)-g
自動(dòng)選用%f和%e中較短的輸出寬度輸出單、雙精度浮點(diǎn)數(shù)
%(+)-mc
char
int
short
單個(gè)字符
1、無(wú)m輸出單個(gè)字符
2、有m輸出m位,補(bǔ)空格
3、有+(默認(rèn)為+)右對(duì)齊(左補(bǔ)空格)
4、有-左對(duì)齊(右補(bǔ)空格)
%(+)-m.ns
字符串
一串字符
1.無(wú)m、n按實(shí)際字符串輸出全部字符
2、有m、n僅輸出前n個(gè)字符,補(bǔ)空格
3.有+(默認(rèn)為+)右對(duì)齊(左補(bǔ)空格)
4、有-左對(duì)齊(右補(bǔ)空格)
二:格式輸入函數(shù)scanf()
1、
調(diào)用格式一般為:scanf("格式化控制字符串",地址表列);
2、格式化控制字符串和printf()函數(shù)含義相似,所不同的是它是對(duì)輸入格式進(jìn)行控制;
3、地址表列是有若干等待輸入的數(shù)據(jù)所對(duì)應(yīng)的內(nèi)存單元地址組成,由逗號(hào)隔開,一般形式為a,a為變量;
4、地址表列在數(shù)量和類型上和格式化控制字符串中的格式說(shuō)明符一一對(duì)應(yīng);
5、格式字符h表示輸入短型數(shù)據(jù),可用在d、o、x前面,m指定輸入數(shù)據(jù)所占寬度,
*表示對(duì)應(yīng)的數(shù)據(jù)項(xiàng)讀入后不賦給相應(yīng)的變量,更多格式說(shuō)明符及其組合如下
格式字符
數(shù)據(jù)對(duì)象
輸入形式
數(shù)據(jù)輸入方法
%md
int
short
unsigned
int
unsigned
short
十進(jìn)制整數(shù)
1、無(wú)m按實(shí)際位數(shù)輸入
2、有m輸入m位,不足m則跟回車鍵
%mo
八進(jìn)制整數(shù)
%mx
十六進(jìn)制整數(shù)
%mld
long
unsigned
long
十進(jìn)制整數(shù)
%mlo
八進(jìn)制整數(shù)
%mlx
十六進(jìn)制整數(shù)
%mlf
float
double
十進(jìn)制整數(shù)
%mle
%mc
char
單個(gè)字符
1、無(wú)m取單個(gè)字符
2、有m輸入m位,僅取第一個(gè)字符
%ms
字符串
一串字符
1、無(wú)m取回車或空格前若干字符
2、有m僅取前m字符
C語(yǔ)言中有哪幾個(gè)輸入輸出函數(shù)簡(jiǎn)述他們的用途?
2.putchar() getchar() 輸出輸入函數(shù)只針對(duì)單個(gè)字符的操作。3.puts(),gets() 輸出輸入函數(shù)可以單個(gè)字符操作(但是功能有限的),主要是針對(duì)字符串操作。 下面我們定義int a用scanf("%d",a)可以獲取整型a的值,a=getchar(),gets(a)無(wú)法從鍵盤獲取數(shù)字用printf("%d",a)可以打印數(shù)字a的值,putchar(a),puts(a)沒(méi)法打印數(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()敗補(bǔ)充:puts()和gets()能接收和打印單個(gè)字符只限制變量是數(shù)組變量例如 char a[50]; gets(a); put(a);你輸入一個(gè)字符就會(huì)打印一個(gè)字符但如果是字符變量 char a='x'; char a; puts(a); 或 gets(a); puts(a);就無(wú)法運(yùn)行char a[50]用scanf("%s",a)能獲取數(shù)組a的值,用a=getchar()無(wú)法獲取,用gets(a)能獲取a的值用printf("%s",a)能打印數(shù)組a的值 用putchar(a)無(wú)法打印,用puts(a)能打印a的值字符串(數(shù)組)方面:gets()和puts()第一,scanf()和printf()第2,getchar()和putchar()敗可見scanf()和printf()什么都能實(shí)現(xiàn),但對(duì)字符和字符串操作沒(méi)有其他兩種好getchar()和putchar()對(duì)字符操作優(yōu)勢(shì)明顯,但不能操作數(shù)字變量,字符數(shù)組變量gets()和puts()對(duì)字符串操作優(yōu)勢(shì)明顯,但也不能操作數(shù)字變量,字符變量scanf()和printf()格式輸入輸出能同時(shí)按格式一起輸入輸出字符,數(shù)字,字符串這是其他兩種不能比的所以程序以scanf()和printf()為主,其他兩種作為輔助,發(fā)揮各自的長(zhǎng)處。最后來(lái)個(gè)總結(jié),用程序表示#include stdio.hmain(){ char a,b[50]; printf("請(qǐng)輸入第一個(gè)字符:\n"); scanf(" %c",a); getchar(); //獲取前面的回車 printf("第一個(gè)的字符為:%c\n",a); printf("請(qǐng)輸入第二個(gè)字符:\n"); a=getchar(); printf("第二個(gè)字符為:"); putchar(a); putchar('\n'); printf("請(qǐng)輸入第一個(gè)字符串:\n"); scanf(" %s",b); getchar(); //獲取前面的回車 printf("第一個(gè)的字符為:%s\n",b); puts("請(qǐng)輸入第二個(gè)字符串:"); gets(b); puts("第二個(gè)字符串為:"); puts(b); }
在C語(yǔ)言中單個(gè)字符輸入/輸出函數(shù)是什么意思
就是只能從輸入設(shè)備上接受一個(gè)字符的輸入和只能向輸出設(shè)備輸出一個(gè)字符。比如,用了ch=getchar(),我輸入abc,電腦只接受了a,而不是abc,那么ch就是等于a了,然后我putchar('abc'),顯示也只能顯示一個(gè)a,無(wú)法把三個(gè)字符全部顯示出來(lái)。
c語(yǔ)言中如何輸入輸出字符串
在C語(yǔ)言中,輸入輸出字符串有以下兩種方式:
1 用scanf/printf輸入輸出。
scanf/printf是C語(yǔ)言的格式化輸入輸出函數(shù),可以用于輸入輸出各種基礎(chǔ)類型,字符串(char*)也
其支持范圍內(nèi)。
格式化字符為%s。
定義
char str[100];
輸入
scanf("%s",str);
輸出
printf("%s",str);
2 C語(yǔ)言還支持專門的字符串輸入輸出函數(shù):gets/puts。
gets的作用為,讀入一行輸入,并將讀到的換行符替換為字符串結(jié)束符。
puts的作用為,將字符串單行輸出,即輸出字符串內(nèi)容后,會(huì)自動(dòng)在結(jié)尾增加換行。
定義
char str[100];
輸入
gets(str);
輸出
puts(str);
擴(kuò)展資料:
起初,C語(yǔ)言沒(méi)有官方標(biāo)準(zhǔn)。1978年由美國(guó)電話電報(bào)公司(ATT)貝爾實(shí)驗(yàn)室正式發(fā)表了C語(yǔ)言。布萊恩·柯林漢(Brian Kernighan) 和 丹尼斯·里奇(Dennis Ritchie) 出版了一本書,名叫《The C Programming Language》。
這本書被 C語(yǔ)言開發(fā)者們稱為KR,很多年來(lái)被當(dāng)作 C語(yǔ)言的非正式的標(biāo)準(zhǔn)說(shuō)明。人們稱這個(gè)版本的 C語(yǔ)言為KR C。
KR C主要介紹了以下特色:
結(jié)構(gòu)體(struct)類型
長(zhǎng)整數(shù)(long int)類型
無(wú)符號(hào)整數(shù)(unsigned int)類型
把運(yùn)算符=+和=-改為+=和-=。因?yàn)?+和=-會(huì)使得編譯器不知道使用者要處理i = -10還是i =- 10,使得處理上產(chǎn)生混淆。
即使在后來(lái)ANSI C標(biāo)準(zhǔn)被提出的許多年后,KR C仍然是許多編譯器的最 準(zhǔn)要求,許多老舊的編譯器仍然運(yùn)行KR C的標(biāo)準(zhǔn)。
1970到80年代,C語(yǔ)言被廣泛應(yīng)用,從大型主機(jī)到小型微機(jī),也衍生了C語(yǔ)言的很多不同版本。
1983年,美國(guó)國(guó)家標(biāo)準(zhǔn)協(xié)會(huì)(ANSI)成立了一個(gè)委員會(huì)X3J11,來(lái)制定 C語(yǔ)言標(biāo)準(zhǔn)。
1989年,美國(guó)國(guó)家標(biāo)準(zhǔn)協(xié)會(huì)(ANSI)通過(guò)了C語(yǔ)言標(biāo)準(zhǔn),被稱為ANSI X3.159-1989 "Programming Language C"。因?yàn)檫@個(gè)標(biāo)準(zhǔn)是1989年通過(guò)的,所以一般簡(jiǎn)稱C89標(biāo)準(zhǔn)。有些人也簡(jiǎn)稱ANSI C,因?yàn)檫@個(gè)標(biāo)準(zhǔn)是美國(guó)國(guó)家標(biāo)準(zhǔn)協(xié)會(huì)(ANSI)發(fā)布的。
1990年,國(guó)際標(biāo)準(zhǔn)化組織(ISO)和國(guó)際電工委員會(huì)(IEC)把C89標(biāo)準(zhǔn)定為C語(yǔ)言的國(guó)際標(biāo)準(zhǔn),命名為ISO/IEC 9899:1990 - Programming languages -- C? 。
因?yàn)榇藰?biāo)準(zhǔn)是在1990年發(fā)布的,所以有些人把簡(jiǎn)稱作C90標(biāo)準(zhǔn)。不過(guò)大多數(shù)人依然稱之為C89標(biāo)準(zhǔn),因?yàn)榇藰?biāo)準(zhǔn)與ANSI C89標(biāo)準(zhǔn)完全等同。
1994年,國(guó)際標(biāo)準(zhǔn)化組織(ISO)和國(guó)際電工委員會(huì)(IEC)發(fā)布了C89標(biāo)準(zhǔn)修訂版,名叫ISO/IEC 9899:1990/Cor 1:1994,有些人簡(jiǎn)稱為C94標(biāo)準(zhǔn)。
1995年,國(guó)際標(biāo)準(zhǔn)化組織(ISO)和國(guó)際電工委員會(huì)(IEC)再次發(fā)布了C89標(biāo)準(zhǔn)修訂版,名叫ISO/IEC 9899:1990/Amd 1:1995 - C Integrity?[7]??,有些人簡(jiǎn)稱為C95標(biāo)準(zhǔn)。
參考資料:百度百科-c語(yǔ)言
C語(yǔ)言中,輸出函數(shù)有哪些?
C語(yǔ)言輸入輸出函數(shù)有很多,標(biāo)準(zhǔn)I/O函數(shù)中包含了如下幾個(gè)常用的函數(shù):
scanf,printf,getc,putc,getchar,putchar,gets,puts,fgets,fputs,fgetc,fputc,fscanf,fprintf等.
int
scanf(const
char
*format,
arg_list)
scanf主要從標(biāo)準(zhǔn)輸入流中獲取參數(shù)值,format為指定的參數(shù)格式及參數(shù)類型,如scanf("%s,%d",str,icount);
它要求在標(biāo)準(zhǔn)輸入流中輸入類似"son
of
bitch,1000"這樣的字符串,同時(shí)程序會(huì)將"son
of
bitch"給str,1000給icount.
scanf函數(shù)的返回值為int值,即成功賦值的個(gè)數(shù),在上例中如果函數(shù)調(diào)用成功,則會(huì)返回2,所以我們?cè)趯懗绦驎r(shí),可以通過(guò)
語(yǔ)句if(scanf("%s,%d",str,icount)
!=
2){...}來(lái)判斷用戶輸入是否正確.
int
printf(const
char
*format,
arg_list)
printf主要是將格式化字符串輸出到標(biāo)準(zhǔn)輸出流中,在stdio.h頭文件中定義了標(biāo)準(zhǔn)的輸入和輸出,分別是stdin,stdout.
arg_list可以是變量名,也可以是表達(dá)式,但最終都會(huì)以值的形式填充進(jìn)format中.
int
getc(FILE
*fp)
getc主要是從文件中讀出一個(gè)字符.常用的判斷文件是否讀取結(jié)束的語(yǔ)句為:(ch
=
getc(fp))
!=
EOF.EOF為文件結(jié)束標(biāo)志,
定義在stdio.h中,就像EXIT_SUCCESS,EXIT_FAILURE定義在stdlib.h中一樣,文件也可以被理解為一種流,所以當(dāng)fp為stdin
時(shí),getc(stdin)就等同于getchar()了.
int
putc(int
ch,FILE
*fp)
putc主要是把字符ch寫到文件fp中去.如果fp為stdout,則putc就等同于putchar()了.
int
getchar(void)
getchar主要是從標(biāo)準(zhǔn)輸入流讀取一個(gè)字符.默認(rèn)的標(biāo)準(zhǔn)輸入流即stdio.h中定義的stdin.但是從輸入流中讀取字符時(shí)又
涉及到緩沖的問(wèn)題,所以并不是在屏幕中敲上一個(gè)字符程序就會(huì)運(yùn)行,一般是通過(guò)在屏幕上敲上回車鍵,然后將回車前的字符
串放在緩沖區(qū)中,getchar就是在緩沖區(qū)中一個(gè)一個(gè)的讀字符.當(dāng)然也可以在while循環(huán)中指定終止字符,如下面的語(yǔ)句:
while
((c
=
getchar())
!=
'#')這是以#來(lái)結(jié)束的.
int
putchar(int
ch)
putchar(ch)主要是把字符ch寫到標(biāo)準(zhǔn)流stdout中去.
char
*
gets(char
*str)
gets主要是從標(biāo)準(zhǔn)輸入流讀取字符串并回顯,讀到換行符時(shí)退出,并會(huì)將換行符省去.
int
puts(char
*str)
puts主要是把字符串str寫到標(biāo)準(zhǔn)流stdout中去,并會(huì)在輸出到最后時(shí)添加一個(gè)換行符.
char
*fgets(char
*str,
int
num,
FILE
*fp)
str是存放讀入的字符數(shù)組指針,num是最大允許的讀入字符數(shù),fp是文件指針.fgets的功能是讀一行字符,該行的字符數(shù)
不大于num-1.因?yàn)閒gets函數(shù)會(huì)在末尾加上一個(gè)空字符以構(gòu)成一個(gè)字符串.另外fgets在讀取到換行符后不會(huì)將其省略.
int
fputs(char
*str,
file
*fp)
fputs將str寫入fp.fputs與puts的不同之處是fputs在打印時(shí)并不添加換行符.
int
fgetc(FILE
*fp)
fgetc從fp的當(dāng)前位置讀取一個(gè)字符.
int
fputc(int
ch,
file
*fp)
fputc是將ch寫入fp當(dāng)前指定位置.
int
fscanf(FILE
*fp,
char
*format,...)
fscanf按照指定格式從文件中出讀出數(shù)據(jù),并賦值到參數(shù)列表中.
int
fprintf(FILE
*fp,
char
*format,...)
fprintf將格式化數(shù)據(jù)寫入流式文件中.
網(wǎng)頁(yè)標(biāo)題:c語(yǔ)言中字符輸出函數(shù),c語(yǔ)言輸出格式符
分享網(wǎng)址:http://fisionsoft.com.cn/article/hopocj.html