C語(yǔ)言輸入輸出函數(shù)有很多,bai標(biāo)準(zhǔn)I/O函數(shù)du中包含了如下幾個(gè)常用的函數(shù):
創(chuàng)新互聯(lián)專業(yè)為企業(yè)提供茂南網(wǎng)站建設(shè)、茂南做網(wǎng)站、茂南網(wǎng)站設(shè)計(jì)、茂南網(wǎng)站制作等企業(yè)網(wǎng)站建設(shè)、網(wǎng)頁(yè)設(shè)計(jì)與制作、茂南企業(yè)網(wǎng)站模板建站服務(wù),十余年茂南做網(wǎng)站經(jīng)驗(yàn),不只是建網(wǎng)站,更提供有價(jià)值的思路和整體網(wǎng)絡(luò)服務(wù)。
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è)趯?xiě)程序時(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寫(xiě)到文件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寫(xiě)到標(biāo)準(zhǔn)流stdout中去.
char * gets(char *str)
gets主要是從標(biāo)準(zhǔn)輸入流讀取字符串并回顯,讀到換行符時(shí)退出,并會(huì)將換行符省去.
int puts(char *str)
puts主要是把字符串str寫(xiě)到標(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寫(xiě)入fp.fputs與puts的不同之處是fputs在打印時(shí)并不添加換行符.
int fgetc(FILE *fp)
fgetc從fp的當(dāng)前位置讀取一個(gè)字符.
int fputc(int ch, file *fp)
fputc是將ch寫(xiě)入fp當(dāng)前指定位置.
int fscanf(FILE *fp, char *format,...)
fscanf按照指定格式從文件中出讀出數(shù)據(jù),并賦值到參數(shù)列表中.
int fprintf(FILE *fp, char *format,...)
fprintf將格式化數(shù)據(jù)寫(xiě)入流式文件中.
你可以用數(shù)組,也可以用鏈表來(lái)保存.
如果沒(méi)有通過(guò)文件的形式來(lái)保存的話,就試用內(nèi)存來(lái)保存好了,這樣上面所說(shuō)的數(shù)組,和和鏈表是不錯(cuò)的選擇.
不過(guò)有個(gè)缺點(diǎn),就是在下次啟動(dòng)的時(shí)候不能讀取上次存入的數(shù)據(jù),除了程序編譯時(shí)生成的以外都不會(huì)保存.
如果想保存,最好就通過(guò)文件的形式來(lái)保存,即吧新加入的數(shù)據(jù)放進(jìn)一個(gè)文件里面,修改的會(huì)修改相應(yīng)的數(shù)據(jù),刪除也是同理,管理數(shù)據(jù)方面,建議使用數(shù)據(jù)庫(kù).
Turbo C 2.0標(biāo)準(zhǔn)庫(kù)提供了兩個(gè)控制臺(tái)格式化輸入、輸出函數(shù) scanf();和printf();這兩個(gè)函數(shù)可以在標(biāo)準(zhǔn)輸入輸出設(shè)備上以各種不同的格式讀寫(xiě)數(shù)據(jù)。scanf()函數(shù)用來(lái)從標(biāo)準(zhǔn)輸入設(shè)備(鍵盤(pán))上讀數(shù)據(jù),printf()函數(shù)用來(lái)向標(biāo)準(zhǔn)輸出設(shè)備(屏幕)寫(xiě)數(shù)據(jù)。下面詳細(xì)介紹這兩個(gè)函數(shù)的用法。
1.標(biāo)準(zhǔn)輸入語(yǔ)句
scanf()函數(shù)是格式化輸入函數(shù),它從標(biāo)準(zhǔn)輸入設(shè)備(鍵盤(pán))讀取輸入的信息。其調(diào)用格式為:scanf(<格式化字符串>,<地址表>);
格式化字符串包括以下三類不同的字符;
(1).空白字符:空白字符會(huì)使scanf()函數(shù)在讀操作中略去輸入中的一個(gè)或多個(gè)空白字符。
(2).非空白字符:一個(gè)非空白字符會(huì)使scanf()函數(shù)在讀入時(shí)剔除掉與這個(gè)非空白字符相同的字符。
(3).格式化說(shuō)明符:以%開(kāi)始,后跟一個(gè)或幾個(gè)規(guī)定字符,用來(lái)確定輸出內(nèi)容格式。
是取地址,scanf讀取變量的時(shí)候,參數(shù)需要的是變量的實(shí)際內(nèi)存地址。
與printf函數(shù)一樣,都被聲明在頭文件stdio.h里,因此在使用scanf函數(shù)時(shí)要加上#include stdio.h。
在有一些實(shí)現(xiàn)中,printf函數(shù)與scanf函數(shù)在使用時(shí)可以不使用預(yù)編譯命令#include stdio.h。是格式輸入函數(shù),即按用戶指定的格式從鍵盤(pán)上把數(shù)據(jù)輸入到指定的變量之中。
擴(kuò)展資料:
對(duì)于字符串?dāng)?shù)組或字符串指針變量,由于數(shù)組名可以轉(zhuǎn)換為數(shù)組和指針變量名本身就是地址,因此使用scanf()函數(shù)時(shí),不需要在它們前面加上""操作符。
可以在格式化字符串中的"%"各格式化規(guī)定符之間加入一個(gè)整數(shù),表示任何讀操作中的最大位數(shù)。scanf函數(shù)中沒(méi)有類似printf的精度控制。如: scanf("%5.2f",a); 是非法的。不能企圖用此語(yǔ)句輸入小數(shù)為2位的實(shí)數(shù)。
scanf中要求給出變量地址,如給出變量名則會(huì)出錯(cuò),如 scanf("%d",a);是非法的,應(yīng)改為scanf("%d",a);才是合法的。
它的作用是從標(biāo)準(zhǔn)輸入設(shè)備(默認(rèn)設(shè)備是鍵盤(pán)),按格式定義,有格式地輸入一個(gè)或多個(gè)變量。頭文件名為 stdio.h
要 #include stdio.h
C語(yǔ)言標(biāo)準(zhǔn)庫(kù)函數(shù)存放在頭文件當(dāng)中,使用相應(yīng)函數(shù)時(shí)需要用include引用先關(guān)頭文件。
C語(yǔ)言程序設(shè)計(jì)里,C 標(biāo)準(zhǔn)函數(shù)(C Standard library)是所有目前符合標(biāo)準(zhǔn)的頭文件(head
file)的集合,以及常用的函數(shù)庫(kù)實(shí)現(xiàn)程序,例如 I/O輸入輸出和字串符控制。不像 COBOL、Forrian和 PL/I等編程語(yǔ)言,在 C
語(yǔ)言的工作任務(wù)里不會(huì)包含嵌入的關(guān)鍵字,所以幾乎所有的 C 語(yǔ)言程序都是由標(biāo)準(zhǔn)函數(shù)庫(kù)的函數(shù)來(lái)創(chuàng)建的。
下面列出C89及C99中C語(yǔ)言標(biāo)準(zhǔn)函數(shù)庫(kù)的頭文件。
C89中標(biāo)準(zhǔn)的頭文件
assert.h 設(shè)定斷言點(diǎn)
ctype.h 字符處理
errno.h 錯(cuò)誤報(bào)告
float.h 定義與實(shí)現(xiàn)相關(guān)的浮點(diǎn)值勤
limits.h 定義與實(shí)現(xiàn)相關(guān)的各種極限值
locale.h 支持函數(shù)setlocale()
math.h 數(shù)學(xué)函數(shù)庫(kù)使用的各種定義
setjmp.h 支持非局部跳轉(zhuǎn)
signal.h 定義信號(hào)值
stdarg.h 支持可變長(zhǎng)度的變?cè)斜?/p>
stddef.h 定義常用常數(shù)
stdio.h 支持文件輸入和輸出
stdlib.h 其他各種聲明
string.h 支持串函數(shù)
time.h 支持系統(tǒng)時(shí)間函數(shù)
C99新增的頭文件和庫(kù)
complex.h 支持復(fù)數(shù)算法
fenv.h 給出對(duì)浮點(diǎn)狀態(tài)標(biāo)記和浮點(diǎn)環(huán)境的其他方面的訪問(wèn)
inttypes.h 定義標(biāo)準(zhǔn)的、可移植的整型類型集合。也支持處理最大寬度整數(shù)的函數(shù)
iso646.h 首先在此1995年第一次修訂時(shí)引進(jìn),用于定義對(duì)應(yīng)各種運(yùn)算符的宏
stdbool.h 支持布爾數(shù)據(jù)類型類型。定義宏bool,以便兼容于C++
stdint.h 定義標(biāo)準(zhǔn)的、可移植的整型類型集合。該文件包含在inttypes.h中
tgmath.h 定義一般類型的浮點(diǎn)宏
wchar.h 首先在1995年第一次修訂時(shí)引進(jìn),用于支持多字節(jié)和寬字節(jié)函數(shù)
wctype.h 首先在1995年第一次修訂時(shí)引進(jìn),用于支持多字節(jié)和寬字節(jié)分類函數(shù)
名稱欄目:c語(yǔ)言保存標(biāo)準(zhǔn)輸入函數(shù) c語(yǔ)言保存函數(shù)怎么寫(xiě)
文章路徑:http://chinadenli.net/article28/hgpdcp.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站維護(hù)、網(wǎng)站營(yíng)銷、網(wǎng)站排名、網(wǎng)站收錄、用戶體驗(yàn)、網(wǎng)站改版
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)