您好,歡迎進(jìn)入深圳市穎特新科技有限公司官方網(wǎng)站!
一般地,在C語(yǔ)言或C++中,會(huì)把用來(lái)#include的文件的擴(kuò)展名叫 .h,稱其為頭文件。 #include文件的目的就是把多個(gè)編譯單元(也就是c或者cpp文件)公用的內(nèi)容,單獨(dú)放在一個(gè)文件里減少整體代碼尺寸;或者提供跨工程公共代碼。
stdio .h 頭文件定義了三個(gè)變量類型、一些宏和各種函數(shù)來(lái)執(zhí)行輸入和輸出。
下面是頭文件 stdio.h 中定義的變量類型:
序號(hào) | 變量 & 描述 |
---|---|
1 | size_t 這是無(wú)符號(hào)整數(shù)類型,它是 sizeof 關(guān)鍵字的結(jié)果。 |
2 | FILE 這是一個(gè)適合存儲(chǔ)文件流信息的對(duì)象類型。 |
3 | fpos_t 這是一個(gè)適合存儲(chǔ)文件中任何位置的對(duì)象類型。 |
下面是頭文件 stdio.h 中定義的宏:
序號(hào) | 宏 & 描述 |
---|---|
1 | NULL 這個(gè)宏是一個(gè)空指針常量的值。 |
2 | _IOFBF、_IOLBF 和 _IONBF 這些宏擴(kuò)展了帶有特定值的整型常量表達(dá)式,并適用于 setvbuf 函數(shù)的第三個(gè)參數(shù)。 |
3 | BUFSIZ 這個(gè)宏是一個(gè)整數(shù),該整數(shù)代表了 setbuf 函數(shù)使用的緩沖區(qū)大小。 |
4 | EOF 這個(gè)宏是一個(gè)表示已經(jīng)到達(dá)文件結(jié)束的負(fù)整數(shù)。 |
5 | FOPEN_MAX 這個(gè)宏是一個(gè)整數(shù),該整數(shù)代表了系統(tǒng)可以同時(shí)打開的文件數(shù)量。 |
6 | FILENAME_MAX 這個(gè)宏是一個(gè)整數(shù),該整數(shù)代表了字符數(shù)組可以存儲(chǔ)的文件名的最大長(zhǎng)度。如果實(shí)現(xiàn)沒(méi)有任何限制,則該值應(yīng)為推薦的最大值。 |
7 | L_tmpnam 這個(gè)宏是一個(gè)整數(shù),該整數(shù)代表了字符數(shù)組可以存儲(chǔ)的由 tmpnam 函數(shù)創(chuàng)建的臨時(shí)文件名的最大長(zhǎng)度。 |
8 | SEEK_CUR、SEEK_END 和 SEEK_SET 這些宏是在These macros are used in the fseek 函數(shù)中使用,用于在一個(gè)文件中定位不同的位置。 |
9 | TMP_MAX 這個(gè)宏是 tmpnam 函數(shù)可生成的獨(dú)特文件名的最大數(shù)量。 |
10 | stderr、stdin 和 stdout 這些宏是指向 FILE 類型的指針,分別對(duì)應(yīng)于標(biāo)準(zhǔn)錯(cuò)誤、標(biāo)準(zhǔn)輸入和標(biāo)準(zhǔn)輸出流。 |
下面是頭文件 stdio.h 中定義的函數(shù):
為了更好地理解函數(shù),請(qǐng)按照下面的序列學(xué)習(xí)這些函數(shù),因?yàn)榈谝粋(gè)函數(shù)中創(chuàng)建的文件會(huì)在后續(xù)的函數(shù)中使用到。
序號(hào) | 函數(shù) & 描述 |
---|---|
1 | int fclose(FILE *stream) 關(guān)閉流 stream。刷新所有的緩沖區(qū)。 |
2 | void clearerr(FILE *stream) 清除給定流 stream 的文件結(jié)束和錯(cuò)誤標(biāo)識(shí)符。 |
3 | int feof(FILE *stream) 測(cè)試給定流 stream 的文件結(jié)束標(biāo)識(shí)符。 |
4 | int ferror(FILE *stream) 測(cè)試給定流 stream 的錯(cuò)誤標(biāo)識(shí)符。 |
5 | int fflush(FILE *stream) 刷新流 stream 的輸出緩沖區(qū)。 |
6 | int fgetpos(FILE *stream, fpos_t *pos) 獲取流 stream 的當(dāng)前文件位置,并把它寫入到 pos。 |
7 | FILE *fopen(const char *filename, const char *mode) 使用給定的模式 mode 打開 filename 所指向的文件。 |
8 | size_t fread(void *ptr, size_t size, size_t nmemb, FILE *stream) 從給定流 stream 讀取數(shù)據(jù)到 ptr 所指向的數(shù)組中。 |
9 | FILE *freopen(const char *filename, const char *mode, FILE *stream) 把一個(gè)新的文件名 filename 與給定的打開的流 stream 關(guān)聯(lián),同時(shí)關(guān)閉流中的舊文件。 |
10 | int fseek(FILE *stream, long int offset, int whence) 設(shè)置流 stream 的文件位置為給定的偏移 offset,參數(shù) offset 意味著從給定的 whence 位置查找的字節(jié)數(shù)。 |
11 | int fsetpos(FILE *stream, const fpos_t *pos) 設(shè)置給定流 stream 的文件位置為給定的位置。參數(shù) pos 是由函數(shù) fgetpos 給定的位置。 |
12 | long int ftell(FILE *stream) 返回給定流 stream 的當(dāng)前文件位置。 |
13 | size_t fwrite(const void *ptr, size_t size, size_t nmemb, FILE *stream) 把 ptr 所指向的數(shù)組中的數(shù)據(jù)寫入到給定流 stream 中。 |
14 | int remove(const char *filename) 刪除給定的文件名 filename,以便它不再被訪問(wèn)。 |
15 | int rename(const char *old_filename, const char *new_filename) 把 old_filename 所指向的文件名改為 new_filename。 |
16 | void rewind(FILE *stream) 設(shè)置文件位置為給定流 stream 的文件的開頭。 |
17 | void setbuf(FILE *stream, char *buffer) 定義流 stream 應(yīng)如何緩沖。 |
18 | int setvbuf(FILE *stream, char *buffer, int mode, size_t size) 另一個(gè)定義流 stream 應(yīng)如何緩沖的函數(shù)。 |
19 | FILE *tmpfile(void) 以二進(jìn)制更新模式(wb+)創(chuàng)建臨時(shí)文件。 |
20 | char *tmpnam(char *str) 生成并返回一個(gè)有效的臨時(shí)文件名,該文件名之前是不存在的。 |
21 | int fprintf(FILE *stream, const char *format, ...) 發(fā)送格式化輸出到流 stream 中。 |
22 | int printf(const char *format, ...) 發(fā)送格式化輸出到標(biāo)準(zhǔn)輸出 stdout。 |
23 | int sprintf(char *str, const char *format, ...) 發(fā)送格式化輸出到字符串。 |
24 | int vfprintf(FILE *stream, const char *format, va_list arg) 使用參數(shù)列表發(fā)送格式化輸出到流 stream 中。 |
25 | int vprintf(const char *format, va_list arg) 使用參數(shù)列表發(fā)送格式化輸出到標(biāo)準(zhǔn)輸出 stdout。 |
26 | int vsprintf(char *str, const char *format, va_list arg) 使用參數(shù)列表發(fā)送格式化輸出到字符串。 |
27 | int fscanf(FILE *stream, const char *format, ...) 從流 stream 讀取格式化輸入。 |
28 | int scanf(const char *format, ...) 從標(biāo)準(zhǔn)輸入 stdin 讀取格式化輸入。 |
29 | int sscanf(const char *str, const char *format, ...) 從字符串讀取格式化輸入。 |
30 | int fgetc(FILE *stream) 從指定的流 stream 獲取下一個(gè)字符(一個(gè)無(wú)符號(hào)字符),并把位置標(biāo)識(shí)符往前移動(dòng)。 |
31 | char *fgets(char *str, int n, FILE *stream) 從指定的流 stream 讀取一行,并把它存儲(chǔ)在 str 所指向的字符串內(nèi)。當(dāng)讀取 (n-1) 個(gè)字符時(shí),或者讀取到換行符時(shí),或者到達(dá)文件末尾時(shí),它會(huì)停止,具體視情況而定。 |
32 | int fputc(int char, FILE *stream) 把參數(shù) char 指定的字符(一個(gè)無(wú)符號(hào)字符)寫入到指定的流 stream 中,并把位置標(biāo)識(shí)符往前移動(dòng)。 |
33 | int fputs(const char *str, FILE *stream) 把字符串寫入到指定的流 stream 中,但不包括空字符。 |
34 | int getc(FILE *stream) 從指定的流 stream 獲取下一個(gè)字符(一個(gè)無(wú)符號(hào)字符),并把位置標(biāo)識(shí)符往前移動(dòng)。 |
35 | int getchar(void) 從標(biāo)準(zhǔn)輸入 stdin 獲取一個(gè)字符(一個(gè)無(wú)符號(hào)字符)。 |
36 | char *gets(char *str) 從標(biāo)準(zhǔn)輸入 stdin 讀取一行,并把它存儲(chǔ)在 str 所指向的字符串中。當(dāng)讀取到換行符時(shí),或者到達(dá)文件末尾時(shí),它會(huì)停止,具體視情況而定。 |
37 | int putc(int char, FILE *stream) 把參數(shù) char 指定的字符(一個(gè)無(wú)符號(hào)字符)寫入到指定的流 stream 中,并把位置標(biāo)識(shí)符往前移動(dòng)。 |
38 | int putchar(int char) 把參數(shù) char 指定的字符(一個(gè)無(wú)符號(hào)字符)寫入到標(biāo)準(zhǔn)輸出 stdout 中。 |
39 | int puts(const char *str) 把一個(gè)字符串寫入到標(biāo)準(zhǔn)輸出 stdout,直到空字符,但不包括空字符。換行符會(huì)被追加到輸出中。 |
40 | int ungetc(int char, FILE *stream) 把字符 char(一個(gè)無(wú)符號(hào)字符)推入到指定的流 stream 中,以便它是下一個(gè)被讀取到的字符。 |
41 | void perror(const char *str) 把一個(gè)描述性錯(cuò)誤消息輸出到標(biāo)準(zhǔn)錯(cuò)誤 stderr。首先輸出字符串 str,后跟一個(gè)冒號(hào),然后是一個(gè)空格。 |
int getchar()//從標(biāo)準(zhǔn)輸入設(shè)備讀入一個(gè)字符 int putchar()//向標(biāo)準(zhǔn)輸出設(shè)備寫出一個(gè)字符 int scanf(char*format[,argument…])//從標(biāo)準(zhǔn)輸入設(shè)備讀入格式化后的數(shù)據(jù) int printf(char*format[,argument…])//向標(biāo)準(zhǔn)輸出設(shè)備輸出格式化字符串 char gets(char*string)//從標(biāo)準(zhǔn)輸入設(shè)備讀入一個(gè)字符串 int puts(char*string)//向標(biāo)準(zhǔn)輸出設(shè)備輸出一個(gè)字符串 int sprintf(char*string,char*format[,…])//把格式化的數(shù)據(jù)寫入某個(gè)字符串緩沖區(qū)
/* *stdio.h *ThisfilehasnocopyrightassignedandisplacedinthePublicDomain. *Thisfileisapartofthemingw-runtimepackage. *Nowarrantyisgiven;refertothefileDISCLAIMERwithinthepackage. * *Definitionsoftypesandprototypesoffunctionsforstandardinputand *output. * *NOTE:ThefilemanipulationfunctionsprovidedbyMicrosoftseemto *workwitheitherslash(/)orbackslash(\)asthedirectoryseparator. * */
#ifndef_STDIO_H_ #define_STDIO_H_ /*Alltheheadersincludethisfile.*/ #include<_mingw.h> #ifndefRC_INVOKED #define__need_size_t #define__need_NULL #define__need_wchar_t #define__need_wint_t #include<stddef.h> #define__need___va_list #include<stdarg.h> #endif/*NotRC_INVOKED*/ /*Flagsfortheiobufstructure*/ #define_IOREAD1/*currentlyreading*/ #define_IOWRT2/*currentlywriting*/ #define_IORW0x0080/*openedas"r+w"*/ /* *Thethreestandardfilepointersprovidedbytheruntimelibrary. *NOTE:Thesewillgotothebit-bucketsilentlyinGUIapplications! */ #defineSTDIN_FILENO0 #defineSTDOUT_FILENO1 #defineSTDERR_FILENO2 /*Returnedbyvariousfunctionsonendoffileconditionorerror.*/ #defineEOF(-1) /* *Themaximumlengthofafilename.YoushoulduseGetVolumeInformation *insteadofthisconstant.Buthey,thisworks. *Alsodefinedinio.h. */ #ifndefFILENAME_MAX #defineFILENAME_MAX(260) #endif /* *Themaximumnumberoffilesthatmaybeopenatonce.Ihavesetthisto *aconservativenumber.Theactualvaluemaybehigher. */ #defineFOPEN_MAX(20) /*Aftercreatingthismanynames,tmpnamandtmpfilereturnNULL*/ #defineTMP_MAX32767 /* *Tmpnam,tmpfileand,sometimes,_tempnamtrytocreate *tempfilesintherootdirectoryofthecurrentdrive *(notinpwd,assuggestedbysomeolderMSdoc's). *RedefiningthesemacrosdoesnoteffecttheCRTfunctions. */ #define_P_tmpdir"\\" #ifndef__STRICT_ANSI__ #defineP_tmpdir_P_tmpdir #endif #define_wP_tmpdirL"\\" /* *Themaximumsizeofname(includingNUL)thatwillbeputintheuser *suppliedbuffercaNamefortmpnam. *Inferredfromthesizeofthestaticbufferreturnedbytmpnam *whenpassedaNULLargument.Mayactuallybesmaller. */ #defineL_tmpnam(16) #define_IOFBF0x0000/*fullbuffered*/ #define_IOLBF0x0040/*linebuffered*/ #define_IONBF0x0004/*notbuffered*/ #define_IOMYBUF0x0008/*stdiomalloc()'dbuffer*/ #define_IOEOF0x0010/*EOFreachedonread*/ #define_IOERR0x0020/*I/Oerrorfromsystem*/ #define_IOSTRG0x0040/*Strangeornofiledescriptor*/ #ifdef_POSIX_SOURCE #define_IOAPPEND0x0200 #endif /* *Thebuffersizeasusedbysetbufsuchthatitisequivalentto *(void)setvbuf(fileSetBuffer,caBuffer,_IOFBF,BUFSIZ). */ #defineBUFSIZ512 /*ConstantsfornOriginindicatingthepositionrelativetowhichfseek *setsthefileposition.Enclosedinifdefsbecauseio.hcouldalso *definethem.(Thoughnotanymoresinceio.hincludesthisfilenow.)*/ #ifndefSEEK_SET #defineSEEK_SET(0) #endif #ifndefSEEK_CUR #defineSEEK_CUR(1) #endif #ifndefSEEK_END #defineSEEK_END(2) #endif #ifndefRC_INVOKED #ifndef__VALIST #ifdef__GNUC__ #define__VALIST__gnuc_va_list #else #define__VALISTchar* #endif #endif/*defined__VALIST*/ /* *ThestructureunderlyingtheFILEtype. * *Somebelievethatnobodyintheirrightmindshouldmakeuseofthe *internalsofthisstructure.ProvidedbyPedroA.ArandaGutiirrez */ #ifndef_FILE_DEFINED #define_FILE_DEFINED
typedefstruct_iobuf { char*_ptr; int_cnt; char*_base; int_flag; int_file; int_charbuf; int_bufsiz; char*_tmpfname; }FILE; #endif/*Not_FILE_DEFINED*/ /* *Thestandardfilehandles */ #ifndef__DECLSPEC_SUPPORTED externFILE(*_imp___iob)[];/*ApointertoanarrayofFILE*/ #define_iob(*_imp___iob)/*AnarrayofFILE*/ #else/*__DECLSPEC_SUPPORTED*/ __MINGW_IMPORTFILE_iob[];/*AnarrayofFILEimportedfromDLL.*/ #endif/*__DECLSPEC_SUPPORTED*/ #definestdin(&_iob[STDIN_FILENO]) #definestdout(&_iob[STDOUT_FILENO]) #definestderr(&_iob[STDERR_FILENO])
#ifdef__cplusplus extern"C"{ #endif /* *FileOperations */ _CRTIMPFILE*__cdeclfopen(constchar*,constchar*); _CRTIMPFILE*__cdeclfreopen(constchar*,constchar*,FILE*); _CRTIMPint__cdeclfflush(FILE*); _CRTIMPint__cdeclfclose(FILE*); /*MSputsremove&rename(butnotwideversions)inio.halso*/ _CRTIMPint__cdeclremove(constchar*); _CRTIMPint__cdeclrename(constchar*,constchar*); _CRTIMPFILE*__cdecltmpfile(void); _CRTIMPchar*__cdecltmpnam(char*); #ifndef__STRICT_ANSI__ _CRTIMPchar*__cdecl_tempnam(constchar*,constchar*); _CRTIMPint__cdecl_rmtmp(void); #ifndefNO_OLDNAMES _CRTIMPchar*__cdecltempnam(constchar*,constchar*); _CRTIMPint__cdeclrmtmp(void); #endif #endif/*__STRICT_ANSI__*/ _CRTIMPint__cdeclsetvbuf(FILE*,char*,int,size_t); _CRTIMPvoid__cdeclsetbuf(FILE*,char*); /* *FormattedOutput */ _CRTIMPint__cdeclfprintf(FILE*,constchar*,...); _CRTIMPint__cdeclprintf(constchar*,...); _CRTIMPint__cdeclsprintf(char*,constchar*,...); _CRTIMPint__cdecl_snprintf(char*,size_t,constchar*,...); _CRTIMPint__cdeclvfprintf(FILE*,constchar*,__VALIST); _CRTIMPint__cdeclvprintf(constchar*,__VALIST); _CRTIMPint__cdeclvsprintf(char*,constchar*,__VALIST); _CRTIMPint__cdecl_vsnprintf(char*,size_t,constchar*,__VALIST); #ifndef__NO_ISOCEXT/*externsinlibmingwex.a*/ int__cdeclsnprintf(char*s,size_tn,constchar*format,...); __CRT_INLINEint__cdecl vsnprintf(char*s,size_tn,constchar*format,__VALISTarg) {return_vsnprintf(s,n,format,arg);} int__cdeclvscanf(constchar*__restrict__,__VALIST); int__cdeclvfscanf(FILE*__restrict__,constchar*__restrict__, __VALIST); int__cdeclvsscanf(constchar*__restrict__, constchar*__restrict__,__VALIST); #endif /* *FormattedInput */ _CRTIMPint__cdeclfscanf(FILE*,constchar*,...); _CRTIMPint__cdeclscanf(constchar*,...); _CRTIMPint__cdeclsscanf(constchar*,constchar*,...); /* *CharacterInputandOutputFunctions */ _CRTIMPint__cdeclfgetc(FILE*); _CRTIMPchar*__cdeclfgets(char*,int,FILE*); _CRTIMPint__cdeclfputc(int,FILE*); _CRTIMPint__cdeclfputs(constchar*,FILE*); _CRTIMPchar*__cdeclgets(char*); _CRTIMPint__cdeclputs(constchar*); _CRTIMPint__cdeclungetc(int,FILE*); /*Traditionally,getcandputcaredefinedasmacros.butthe standarddoesn'tsaythattheymustbemacros. Weuseinlinefunctionsheretoallowthefastversions tobeusedinC++withnamespacequalification,eg.,::getc. _filbufand_flsbufarenotthread-safe.*/ _CRTIMPint__cdecl_filbuf(FILE*); _CRTIMPint__cdecl_flsbuf(int,FILE*); #if!defined_MT __CRT_INLINEint__cdeclgetc(FILE*__F) { return(--__F->_cnt>=0) ?(int)(unsignedchar)*__F->_ptr++ :_filbuf(__F); } __CRT_INLINEint__cdeclputc(int__c,FILE*__F) { return(--__F->_cnt>=0) ?(int)(unsignedchar)(*__F->_ptr++=(char)__c) :_flsbuf(__c,__F); } __CRT_INLINEint__cdeclgetchar(void) { return(--stdin->_cnt>=0) ?(int)(unsignedchar)*stdin->_ptr++ :_filbuf(stdin); } __CRT_INLINEint__cdeclputchar(int__c) { return(--stdout->_cnt>=0) ?(int)(unsignedchar)(*stdout->_ptr++=(char)__c) :_flsbuf(__c,stdout);} #else/*Uselibraryfunctions.*/ _CRTIMPint__cdeclgetc(FILE*); _CRTIMPint__cdeclputc(int,FILE*); _CRTIMPint__cdeclgetchar(void); _CRTIMPint__cdeclputchar(int); #endif /* *DirectInputandOutputFunctions */ _CRTIMPsize_t__cdeclfread(void*,size_t,size_t,FILE*); _CRTIMPsize_t__cdeclfwrite(constvoid*,size_t,size_t,FILE*); /* *FilePositioningFunctions */ _CRTIMPint__cdeclfseek(FILE*,long,int); _CRTIMPlong__cdeclftell(FILE*); _CRTIMPvoid__cdeclrewind(FILE*); #ifdef__USE_MINGW_FSEEK/*Theseareinlibmingwex.a*/ /* *Workaroundforlimitationsonwin9xwhereafilecontentsare *notzero'doutifyouseekpasttheendandthenwrite. */ int__cdecl__mingw_fseek(FILE*,long,int); int__cdecl__mingw_fwrite(constvoid*,size_t,size_t,FILE*); #definefseek(fp,offset,whence)__mingw_fseek(fp,offset,whence) #definefwrite(buffer,size,count,fp)__mingw_fwrite(buffer,size,count,fp) #endif/*__USE_MINGW_FSEEK*/ /* *Anopaquedatatypeusedforstoringfilepositions...Thecontentsof *thistypeareunknown,butwe(thecompiler)needtoknowthesize *becausetheprogrammerusingfgetposandfsetposwillbesettingaside *storageforfpos_tstructres.ActuallyItestedusingabytearrayand *itisfairlyevidentthatthefpos_ttypeisalong(inCRTDLL.DLL). *Perhapsanunsignedlong?TODO?It'sdefinitelya64-bitnumberin *MSVCRThowever,andfornow`longlong'willdo. */ #ifdef__MSVCRT__ typedeflonglongfpos_t; #else typedeflongfpos_t; #endif _CRTIMPint__cdeclfgetpos(FILE*,fpos_t*); _CRTIMPint__cdeclfsetpos(FILE*,constfpos_t*); /* *ErrorFunctions */ _CRTIMPint__cdeclfeof(FILE*); _CRTIMPint__cdeclferror(FILE*); #ifdef__cplusplus inlineint__cdeclfeof(FILE*__F) {return__F->_flag&_IOEOF;} inlineint__cdeclferror(FILE*__F) {return__F->_flag&_IOERR;} #else #definefeof(__F)((__F)->_flag&_IOEOF) #defineferror(__F)((__F)->_flag&_IOERR) #endif _CRTIMPvoid__cdeclclearerr(FILE*); _CRTIMPvoid__cdeclperror(constchar*); #ifndef__STRICT_ANSI__ /* *Pipes */ _CRTIMPFILE*__cdecl_popen(constchar*,constchar*); _CRTIMPint__cdecl_pclose(FILE*); #ifndefNO_OLDNAMES _CRTIMPFILE*__cdeclpopen(constchar*,constchar*); _CRTIMPint__cdeclpclose(FILE*); #endif /* *OtherNonANSIfunctions */ _CRTIMPint__cdecl_flushall(void); _CRTIMPint__cdecl_fgetchar(void); _CRTIMPint__cdecl_fputchar(int); _CRTIMPFILE*__cdecl_fdopen(int,constchar*); _CRTIMPint__cdecl_fileno(FILE*); _CRTIMPint__cdecl_fcloseall(void); _CRTIMPFILE*__cdecl_fsopen(constchar*,constchar*,int); #ifdef__MSVCRT__ _CRTIMPint__cdecl_getmaxstdio(void); _CRTIMPint__cdecl_setmaxstdio(int); #endif #ifndef_NO_OLDNAMES _CRTIMPint__cdeclfgetchar(void); _CRTIMPint__cdeclfputchar(int); _CRTIMPFILE*__cdeclfdopen(int,constchar*); _CRTIMPint__cdeclfileno(FILE*); #endif/*Not_NO_OLDNAMES*/ #define_fileno(__F)((__F)->_file) #ifndef_NO_OLDNAMES #definefileno(__F)((__F)->_file) #endif #ifdefined(__MSVCRT__)&&!defined(__NO_MINGW_LFS) #include<sys/types.h> __CRT_INLINEFILE*__cdeclfopen64(constchar*filename,constchar*mode) { returnfopen(filename,mode); } int__cdeclfseeko64(FILE*,off64_t,int); #ifdef__USE_MINGW_FSEEK int__cdecl__mingw_fseeko64(FILE*,off64_t,int); #definefseeko64(fp,offset,whence)__mingw_fseeko64(fp,offset,whence) #endif __CRT_INLINEoff64_t__cdeclftello64(FILE*stream) { fpos_tpos; if(fgetpos(stream,&pos)) return-1LL; else return((off64_t)pos); } #endif/*__NO_MINGW_LFS*/ #endif/*Not__STRICT_ANSI__*/ /*Wideversions*/ #ifndef_WSTDIO_DEFINED /*alsoinwchar.h-keepinsync*/ _CRTIMPint__cdeclfwprintf(FILE*,constwchar_t*,...); _CRTIMPint__cdeclwprintf(constwchar_t*,...); _CRTIMPint__cdeclswprintf(wchar_t*,constwchar_t*,...); _CRTIMPint__cdecl_snwprintf(wchar_t*,size_t,constwchar_t*,...); _CRTIMPint__cdeclvfwprintf(FILE*,constwchar_t*,__VALIST); _CRTIMPint__cdeclvwprintf(constwchar_t*,__VALIST); _CRTIMPint__cdeclvswprintf(wchar_t*,constwchar_t*,__VALIST); _CRTIMPint__cdecl_vsnwprintf(wchar_t*,size_t,constwchar_t*,__VALIST); _CRTIMPint__cdeclfwscanf(FILE*,constwchar_t*,...); _CRTIMPint__cdeclwscanf(constwchar_t*,...); _CRTIMPint__cdeclswscanf(constwchar_t*,constwchar_t*,...); _CRTIMPwint_t__cdeclfgetwc(FILE*); _CRTIMPwint_t__cdeclfputwc(wchar_t,FILE*); _CRTIMPwint_t__cdeclungetwc(wchar_t,FILE*); #ifdef__MSVCRT__ _CRTIMPwchar_t*__cdeclfgetws(wchar_t*,int,FILE*); _CRTIMPint__cdeclfputws(constwchar_t*,FILE*); _CRTIMPwint_t__cdeclgetwc(FILE*); _CRTIMPwint_t__cdeclgetwchar(void); _CRTIMPwchar_t*__cdecl_getws(wchar_t*); _CRTIMPwint_t__cdeclputwc(wint_t,FILE*); _CRTIMPint__cdecl_putws(constwchar_t*); _CRTIMPwint_t__cdeclputwchar(wint_t); _CRTIMPFILE*__cdecl_wfdopen(int,wchar_t*); _CRTIMPFILE*__cdecl_wfopen(constwchar_t*,constwchar_t*); _CRTIMPFILE*__cdecl_wfreopen(constwchar_t*,constwchar_t*,FILE*); _CRTIMPFILE*__cdecl_wfsopen(constwchar_t*,constwchar_t*,int); _CRTIMPwchar_t*__cdecl_wtmpnam(wchar_t*); _CRTIMPwchar_t*__cdecl_wtempnam(constwchar_t*,constwchar_t*); _CRTIMPint__cdecl_wrename(constwchar_t*,constwchar_t*); _CRTIMPint__cdecl_wremove(constwchar_t*); _CRTIMPvoid__cdecl_wperror(constwchar_t*); _CRTIMPFILE*__cdecl_wpopen(constwchar_t*,constwchar_t*); #endif/*__MSVCRT__*/ #ifndef__NO_ISOCEXT/*externsinlibmingwex.a*/ int__cdeclsnwprintf(wchar_t*s,size_tn,constwchar_t*format,...); __CRT_INLINEint__cdecl vsnwprintf(wchar_t*s,size_tn,constwchar_t*format,__VALISTarg) {return_vsnwprintf(s,n,format,arg);} int__cdeclvwscanf(constwchar_t*__restrict__,__VALIST); int__cdeclvfwscanf(FILE*__restrict__, constwchar_t*__restrict__,__VALIST); int__cdeclvswscanf(constwchar_t*__restrict__, constwchar_t*__restrict__,__VALIST); #endif #define_WSTDIO_DEFINED #endif/*_WSTDIO_DEFINED*/ #ifndef__STRICT_ANSI__ #ifdef__MSVCRT__ #ifndefNO_OLDNAMES _CRTIMPFILE*__cdeclwpopen(constwchar_t*,constwchar_t*); #endif/*notNO_OLDNAMES*/ #endif/*MSVCRTruntime*/ /* *OtherNonANSIwidefunctions */ _CRTIMPwint_t__cdecl_fgetwchar(void); _CRTIMPwint_t__cdecl_fputwchar(wint_t); _CRTIMPint__cdecl_getw(FILE*); _CRTIMPint__cdecl_putw(int,FILE*); #ifndef_NO_OLDNAMES _CRTIMPwint_t__cdeclfgetwchar(void); _CRTIMPwint_t__cdeclfputwchar(wint_t); _CRTIMPint__cdeclgetw(FILE*); _CRTIMPint__cdeclputw(int,FILE*); #endif/*Not_NO_OLDNAMES*/ #endif/*__STRICT_ANSI*/ #ifdef__cplusplus } #endif #endif/*NotRC_INVOKED*/ #endif/*_STDIO_H_*/ stdio.h所包含的函數(shù): 文件訪問(wèn) fopen freopen fflush fclose 二進(jìn)制輸入/輸出 fread fwrite 非格式化輸入/輸出 fgetc/getc fputc/putc ungetc fgets fputs 格式化輸入/輸出 scanf/fscanf/sscanf printf/fprintf/sprintf perror 文件定位 ftell fseek fgetpos fsetpos rewind 錯(cuò)誤處理 feof ferror 文件操作 remove rename tmpfile
掃碼關(guān)注我們
傳真:0755-82591176
郵箱:vicky@yingtexin.net
地址:深圳市龍華區(qū)民治街道民治大道973萬(wàn)眾潤(rùn)豐創(chuàng)業(yè)園A棟2樓A08