C語(yǔ)言輸入輸出函數(shù)有很多,bai標(biāo)準(zhǔn)I/O函數(shù)du中包含了如下幾個(gè)常用的函數(shù):
創(chuàng)新互聯(lián)服務(wù)項(xiàng)目包括泊頭網(wǎng)站建設(shè)、泊頭網(wǎng)站制作、泊頭網(wǎng)頁(yè)制作以及泊頭網(wǎng)絡(luò)營(yíng)銷策劃等。多年來,我們專注于互聯(lián)網(wǎng)行業(yè),利用自身積累的技術(shù)優(yōu)勢(shì)、行業(yè)經(jīng)驗(yàn)、深度合作伙伴關(guān)系等,向廣大中小型企業(yè)、政府機(jī)構(gòu)等提供互聯(lián)網(wǎng)行業(yè)的解決方案,泊頭網(wǎng)站推廣取得了明顯的社會(huì)效益與經(jīng)濟(jì)效益。目前,我們服務(wù)的客戶以成都為中心已經(jīng)輻射到泊頭省份的部分城市,未來相信會(huì)繼續(xù)擴(kuò)大服務(wù)區(qū)域并繼續(xù)獲得客戶的支持與信任!
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)zhi輸入流中獲取dao參數(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í),可以通過
語(yǔ)句if(scanf("%s,%d",str,icount) != 2){...}來判斷用戶輸入是否正確.
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í)又
涉及到緩沖的問題,所以并不是在屏幕中敲上一個(gè)字符程序就會(huì)運(yùn)行,一般是通過在屏幕上敲上回車鍵,然后將回車前的字符
串放在緩沖區(qū)中,getchar就是在緩沖區(qū)中一個(gè)一個(gè)的讀字符.當(dāng)然也可以在while循環(huán)中指定終止字符,如下面的語(yǔ)句:
while ((c = getchar()) != '#')這是以#來結(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ù)寫入流式文件中.
一:格式輸出函數(shù)printf()
1、調(diào)用形式一般為:printf("格式化控制字符串",輸出表列);
2、格式化控制字符串用于指定輸出格式,它有三種形式:
1、格式說明符:規(guī)定了相應(yīng)輸出表列內(nèi)容的輸出格式,以%打頭,如%d、%o等
2、轉(zhuǎn)義字符:用來輸出轉(zhuǎn)義字符所代表的控制代碼或者特殊字符,比如常用的‘\n'、‘\t'
3、普通字符:需要原樣輸出的字符。
3、輸出表列為若干需要輸出的數(shù)據(jù)項(xiàng),它與格式說明符在數(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前,更多格式說明符及其組合形式如下所示:
格式字符
數(shù)據(jù)對(duì)象
輸出形式
數(shù)據(jù)輸出方法
%(+)-md
int
unsigned
int
short
unsigned
short
char
十進(jìn)制整數(shù)
1、無m按實(shí)際位數(shù)輸出
2、有m輸出m位;超過m位,按實(shí)際位數(shù)輸出,不足補(bǔ)空格
3、有+(默認(rèn)為+)右對(duì)齊(左補(bǔ)空格)
4、有-左對(duì)齊(右補(bǔ)空格)
%(+)-mo
八進(jìn)制整數(shù)
%(+)-mx
十六進(jìn)制整數(shù)
%(+)-mu
無符號(hào)整數(shù)
%(+)-mld
long
unsigned
long
十進(jìn)制整數(shù)
%(+)-mlo
八進(jìn)制整數(shù)
%(+)-mlx
十六進(jìn)制整數(shù)
%(+)-mlu
無符號(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、無m輸出單個(gè)字符
2、有m輸出m位,補(bǔ)空格
3、有+(默認(rèn)為+)右對(duì)齊(左補(bǔ)空格)
4、有-左對(duì)齊(右補(bǔ)空格)
%(+)-m.ns
字符串
一串字符
1.無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ù)量和類型上和格式化控制字符串中的格式說明符一一對(duì)應(yīng);
5、格式字符h表示輸入短型數(shù)據(jù),可用在d、o、x前面,m指定輸入數(shù)據(jù)所占寬度,
*表示對(duì)應(yīng)的數(shù)據(jù)項(xiàng)讀入后不賦給相應(yīng)的變量,更多格式說明符及其組合如下
格式字符
數(shù)據(jù)對(duì)象
輸入形式
數(shù)據(jù)輸入方法
%md
int
short
unsigned
int
unsigned
short
十進(jìn)制整數(shù)
1、無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、無m取單個(gè)字符
2、有m輸入m位,僅取第一個(gè)字符
%ms
字符串
一串字符
1、無m取回車或空格前若干字符
2、有m僅取前m字符
1)輸入單個(gè)字符:getc,getchar,getch(不會(huì)在屏幕顯示輸入字符)
2) 輸出單個(gè)字符:putc
3) 輸入一串字符(可以有空格,Tab 等): gets
4) 輸出一串字符(可以有空格,Tab 等): puts
5) 標(biāo)準(zhǔn)輸入:scanf(可以輸入數(shù)字,字符,字符串等。輸入以空白字符分割)
6) 標(biāo)準(zhǔn)輸出:printf(可以格式花輸出數(shù)字,字符,字符串等。)
文件輸入輸出:
在上面的輸入輸出函數(shù)(除了 getchar,getch)前面加上 f,比如fgetc,fputc,fscanf,fprintf,就是文件輸入輸出函數(shù)了。
C語(yǔ)言庫(kù)函數(shù),常用庫(kù)函數(shù)有:
1、scanf格式輸入函數(shù)
2、printf格式輸出函數(shù)
3、systemdos命令函數(shù)
4、sort排序
5、main主函數(shù)
6、fgets文件讀取字符串函數(shù)
7、fputs文件寫入字符串函數(shù)
8、fscanf文件格式讀取函數(shù)
9、fprintf文件格式寫入函數(shù)
10、fopen打開文件函數(shù)
11、getchar輸入字符函數(shù)
12、putchar輸出字符函數(shù)
13、malloc動(dòng)態(tài)申請(qǐng)內(nèi)存函數(shù)
14、free釋放內(nèi)存函數(shù)
15、abs求絕對(duì)值數(shù)學(xué)函數(shù)
16、sqrt求平方根數(shù)學(xué)函數(shù)
擴(kuò)展資料
語(yǔ)言組成:
1、數(shù)據(jù)類型
C的數(shù)據(jù)類型包括:整型、字符型、實(shí)型或浮點(diǎn)型(單精度和雙精度)、枚舉類型、數(shù)組類型、結(jié)構(gòu)體類型、共用體類型、指針類型和空類型。
2、常量與變量
常量其值不可改變,符號(hào)常量名通常用大寫。
變量是以某標(biāo)識(shí)符為名字,其值可以改變的量。標(biāo)識(shí)符是以字母或下劃線開頭的一串由字母、數(shù)字或下劃線構(gòu)成的序列,請(qǐng)注意第一個(gè)字符必須為字母或下劃線,否則為不合法的變量名。變量在編譯時(shí)為其分配相應(yīng)存儲(chǔ)單元。
3、數(shù)組
如果一個(gè)變量名后面跟著一個(gè)有數(shù)字的中括號(hào),這個(gè)聲明就是數(shù)組聲明。字符串也是一種數(shù)組。它們以ASCII的NULL作為數(shù)組的結(jié)束。要特別注意的是,方括內(nèi)的索引值是從0算起的。
4、指針
如果一個(gè)變量聲明時(shí)在前面使用 * 號(hào),表明這是個(gè)指針型變量。換句話說,該變量存儲(chǔ)一個(gè)地址,而 *(此處特指單目運(yùn)算符 * ,下同。C語(yǔ)言中另有 雙目運(yùn)算符 *) 則是取內(nèi)容操作符,意思是取這個(gè)內(nèi)存地址里存儲(chǔ)的內(nèi)容。指針是 C 語(yǔ)言區(qū)別于其他同時(shí)代高級(jí)語(yǔ)言的主要特征之一。
參考資料來源:百度百科-函數(shù)
格式化輸出函數(shù)指的是printf(),用來在屏幕上打印輸出字符串和變量等內(nèi)容
格式化輸入函數(shù)指的是scanf(),其功能是實(shí)現(xiàn)和用戶的交互,由用戶輸入相應(yīng)的值然后給變量
下面是個(gè)判斷一個(gè)數(shù)有幾位的一段代碼,希望能幫助到你
scanf("%d",c);
其中%d是要輸入的字符格式,這里是整型,%c,%l,%f分別為字符型,長(zhǎng)整型,浮點(diǎn)型等
后面的為接受的變量
你也可以用gets(c)這樣可以接受一個(gè)字符串,不過記住此時(shí)c必須定義為string 或 char *類型