【正文】
le;當(dāng)指數(shù)值小于4或大于等于精度時,采用%e或%E的格式;否則使用%f的格式。或者達(dá)到精度指定的字符數(shù)fdouble;形如[],d的數(shù)目由精度確定。轉(zhuǎn)換字符列表如下:字符說明d, iint;有符號十進(jìn)制表示法ounsigned int;無符號八進(jìn)制表示法(無前導(dǎo)0)x, Xunsigned int;無符號十六進(jìn)制表示法(無前導(dǎo)0X和0x),對0x用abcdef,對0X用ABCDEFuunsigned int;無符號十進(jìn)制表示法cint;單個字符,轉(zhuǎn)換為unsigned char類型后輸出schar *;輸出字符串直到39。每個轉(zhuǎn)換規(guī)格說明均以字符%開頭,以轉(zhuǎn)換字符結(jié)束。返回:成功為實(shí)際寫出的字符數(shù),出錯返回負(fù)值按照format說明的格式把變量表中變量內(nèi)容進(jìn)行轉(zhuǎn)換,并寫入stream指向的流。如果buf為NULL,則關(guān)閉流stream的的緩沖區(qū);否則setbuf函數(shù)等價于: (void)setvbuf(stream, buf, _IOFBF, BUFSIZ)注意自定義緩沖區(qū)的尺寸必須為BUFSIZ個字節(jié)。 _IOLNF,不設(shè)置緩沖。 _IOFBF,進(jìn)行完全緩沖;size決定緩沖區(qū)的大小。返回:成功返回0,失敗返回非0控制流stream的緩沖區(qū),這要在讀、寫以及其他任何操作之前設(shè)置。注意tmpnam函數(shù)只是用于創(chuàng)建一個名字,而不是創(chuàng)建一個文件。tmpnam函數(shù)在每次被調(diào)用時均生成不同的名字。若s非空,則函數(shù)將所創(chuàng)建的字符串存儲在數(shù)組s中,并將它作為函數(shù)值返回。 tmpnaminclude char *tmpnam(char s[L_tmpnam])。 tmpfileinclude FILE *tmpfile(void)。 renameinclude int rename(const char *oldfname, const char *newfname)。 removeinclude int remove(const char *filename)。 fcloseinclude int flcose(FILE *stream)。fflush(NULL)用于刷新所有的輸出流。返回:成功為0,失敗返回EOF對輸出流(寫打開),fflush()用于將已寫到緩沖區(qū)但尚未寫出的全部數(shù)據(jù)都寫到文件中;對輸入流,其結(jié)果未定義。該函數(shù)的主要用途是把系統(tǒng)定義的標(biāo)準(zhǔn)流stdin、stdout、stderr重定向到其他文件。返回:成功為stream,失敗為NULL以mode指定的方式打開文件filename,并使該文件與流stream相關(guān)聯(lián)。文件名filename的長度最大為FILENAME_MAX個字符,一次最多可打開FOPEN_MAX個文件(在中定義)。返回:成功為FILE指針,失敗為NULL打開以filename所指內(nèi)容為名字的文件,返回與之關(guān)聯(lián)的流。由頭 部定義的最有用的宏是EOF,其值代表文件的結(jié)尾。最重要的類型是用于聲明文件指針的FILE。C標(biāo)準(zhǔn)庫本文包括大部分C標(biāo)準(zhǔn)庫函數(shù),但沒有列出一些用途有限的函數(shù)以及某些可以簡單的從其他函數(shù)合成的函數(shù),也沒有包含多字節(jié)和本地化函數(shù)。標(biāo)準(zhǔn)庫中的各個函數(shù)、類型以及宏分別在以下標(biāo)準(zhǔn)頭文件中說明:1 輸入與輸出頭文件定義了用于輸入和輸出的函數(shù)、類型和宏。另外兩個常用的類型 是size_t和fpos_t,size_t是由運(yùn)算符sizeof產(chǎn)生的無符號整類型;fpos_t類型定義能夠唯一說明文件中的每個位置的對象。Macros: NULL_IOFBF_IOLBF_IONBFBUFSIZEOFFOPEN_MAXFILENAME_MAXL_tmpnamSEEK_CURSEEK_ENDSEEK_SETTMP_MAXstderrstdinstdoutVariables: typedef size_ttypedef FILEtypedef fpos_tVariables and Definitions:size_t is the unsigned integer result of the sizeof keyword.FILE is a type suitable for storing information for a file stream.fpos_t is a type suitable for storing any position in a file.NULL is the value of a null pointer constant._IOFBF, _IOLBF, and _IONBF are used in the setvbuf function.BUFSIZ is an integer which represents the size of the buffer used by the setbuf function.EOF is a negative integer which indicates an endoffile has been reached.FOPEN_MAX is an integer which represents the maximum number of files that the system can guarantee that can be opened simultaneously.FILENAME_MAX is an integer which represents the longest length of a char array suitable for holding the longest possible filename. If the implementation imposes no limit, then this value should be the remended maximum value.L_tmpnam is an integer which represents the longest length of a char array suitable for holding the longest possible temporary filename created by the tmpnam function. SEEK_CUR, SEEK_END, and SEEK_SET are used in the fseek function.TMP_MAX is the maximum number of unique filenames that the function tmpnam can generate.stderr, stdin, and stdout are pointers to FILE types which correspond to the standard error, standard input, and standard output streams. 文件操作 fopeninclude FILE *fopen(const char *filename, const char *mode)。mode決定打開的方式,可選值如下:r打開文本文件用于讀w創(chuàng)建文本文件用于寫,并刪除已存在的內(nèi)容(如果有的話)a添加;打開或創(chuàng)建文本文件用于在文件末尾寫rb打開二進(jìn)制文件用于讀wb創(chuàng)建二進(jìn)制文件用于寫,并刪除已存在的內(nèi)容(如果有的話)ab添加;打開或創(chuàng)建二進(jìn)制文件用于在文件末尾寫r+打開文本文件用于更新(即讀和寫)w+創(chuàng)建文本文件用于更新,并刪除已存在的內(nèi)容(如果有的話)a+添加;打開或創(chuàng)建文本文件用于更新和在文件末尾寫rb+或r+b打開二進(jìn)制文件用于更新(即讀和寫)wb+或w+b創(chuàng)建二進(jìn)制文件用于更新,并刪除已存在的內(nèi)容(如果有的話)ab+或a+b添加;打開或創(chuàng)建二進(jìn)制文件用于更新和在文件末尾寫后六種方式允許對同一文件進(jìn)行讀和寫,要注意的是,在寫操作和讀操作的交替過程中,必須調(diào)用fflush()或文件定位函數(shù)如fseek()、fsetpos()、rewind()等。 freopeninclude FILE *freopen(const char *filename, const char *mode, FILE *stream)。freopen()先嘗試關(guān)閉與stream關(guān)聯(lián)的文件,不管成功與否,都繼續(xù)打開新文件。 fflushinclude int fflush(FILE *stream)。如果寫過程中發(fā)生錯誤則返回EOF,正常則返回0。程序正常結(jié)束或緩沖區(qū)滿時,緩沖區(qū)自動清倉。返回:成功為0,失敗返回EOF刷新stream的全部未寫出數(shù)據(jù),丟棄任何未讀的緩沖區(qū)內(nèi)的輸入數(shù)據(jù)并釋放自動分配的緩沖區(qū),最后關(guān)閉流。返回:成功為0,失敗為非0值刪除文件filename。返回:成功為0,失敗為非0值把文件的名字從oldfname改為newfname。返回:成功為流指針,失敗為NULL以方式wb+創(chuàng)建一個臨時文件,并返回該流的指針,該文件在被關(guān)閉或程序正常結(jié)束時被自動刪除。返回:成功為非空指針,失敗為NULL若參數(shù)s為NULL(即調(diào)用tmpnam(NULL)),函數(shù)創(chuàng)建一個不同于現(xiàn)存文件名字的字符串,并返回一個指向一內(nèi)部靜態(tài)數(shù)組的指針。s中至少要有L_tmpnam個字符的空間。在程序的執(zhí)行過程中,最多只能確保生成TMP_MAX個不同的名字。 setvbufinclude int setvbuf(FILE *stream, char *buf, int mode, size_t size)。如果buf非空,則將buf指向的區(qū)域作為流的緩沖區(qū),如果buf為NULL,函數(shù)將自行分配一個緩沖區(qū)。mode指定緩沖的處理方式,有如下值: _IOLBF,對文本文件表示行緩沖; setbufinclude void setbuf(FILE *stream, char *buf)。 格式化輸出 fprintfinclude int fprintf(FILE *stream, const char *format,…)。格式化字符串由兩種類型的對象組成:普通字符(它們被拷貝到輸出流)與轉(zhuǎn)換規(guī)格說明(它們決定變量的轉(zhuǎn)換和輸出格式)。如果%后面的字符不是轉(zhuǎn)換字符,那么該行為是未定義的。\039。缺省精度為6位,精度為0時不輸出小數(shù)點(diǎn)e, Edouble;形如[][+]xx或者[][+]xx的十進(jìn)制浮點(diǎn)數(shù)表示法,d的數(shù)目由精度確定。尾部的0與小數(shù)點(diǎn)不打印pvoid *;輸出指針值(具體表示與實(shí)現(xiàn)相關(guān))nint *;到目前為止以此格式調(diào)用函數(shù)輸出的字符的數(shù)目將被寫入到相應(yīng)變量中,不進(jìn)行變量轉(zhuǎn)換%不進(jìn)行變量轉(zhuǎn)換,輸出%在%與轉(zhuǎn)換字符之間依次可以有下列標(biāo)記:標(biāo)記說明指定被轉(zhuǎn)換的變量在其字段內(nèi)左對齊+指定在輸出的數(shù)前面加上正負(fù)號空格如果第一個字符不是正負(fù)號,那么在其前面附加一個空格0對于數(shù)值轉(zhuǎn)換,在輸出長度小于字段寬度時,加前導(dǎo)0指定其他輸出格式,對于o格式,第一個數(shù)字必須為零;對于x/X格式,指定在輸出的非0值前加0x或0X;對于e/E/f/g/G格式,指定輸出總有一個小數(shù)點(diǎn);對于g/GG格式,還指定輸出值后面無意義的0將被保留。轉(zhuǎn)換后的變量輸出寬度至少要達(dá)到這個數(shù)值。填充字符通常為空格(設(shè)置了0標(biāo)記則為0)。 printfinclude int printf(const char *format, …)。 sprintfinclude int sprintf(char *buf, const char *format, …)。\039。\039。注意,sprintf()不對buf進(jìn)行邊界檢查,buf必須足夠大,以便能裝下輸出結(jié)果。除了最多為num1個字符被存放到buf指向的數(shù)組之外,snprintf()和sprintf()完全相同。\039。該函數(shù)不屬于C89(C99增加的),但應(yīng)用廣泛,所以將其包括了進(jìn)來。int vfprintf(FILE *stream, const char *format, va_list arg)。int vsnprintf(char *buf, size_t num, const char *