亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > C > 正文

C語言文件操作函數(shù)

2020-02-24 14:32:38
字體:
供稿:網(wǎng)友

這是一篇關(guān)于C語言文件操作函數(shù)大全,這個(gè)總結(jié)超級詳細(xì),感興趣的你趕緊參考下吧,希望本文所提供知識點(diǎn)可以幫助到你。

fopen(打開文件)相關(guān)函數(shù) open,fclose
表頭文件 #include<stdio.h>
定義函數(shù) FILE * fopen(const char * path,const char * mode);
函數(shù)說明 參數(shù)path字符串包含欲打開的文件路徑及文件名,參數(shù)mode字符串則代表著流形態(tài)。
mode有下列幾種形態(tài)字符串:
r 打開只讀文件,該文件必須存在。
r+ 打開可讀寫的文件,該文件必須存在。
w 打開只寫文件,若文件存在則文件長度清為0,即該文件內(nèi)容會(huì)消失。若文件不存在則建立該文件。
w+ 打開可讀寫文件,若文件存在則文件長度清為零,即該文件內(nèi)容會(huì)消失。若文件不存在則建立該文件。
a 以附加的方式打開只寫文件。若文件不存在,則會(huì)建立該文件,如果文件存在,寫入的數(shù)據(jù)會(huì)被加到文件尾,即文件原先的內(nèi)容會(huì)被保留。
a+ 以附加方式打開可讀寫的文件。若文件不存在,則會(huì)建立該文件,如果文件存在,寫入的數(shù)據(jù)會(huì)被加到文件尾后,即文件原先的內(nèi)容會(huì)被保留。

?

?

?

?


r????? Open text file for reading.? The stream is positioned at the beginning of the file.
r+???? Open for reading and writing.? The stream is positioned at the beginning of the file.
w????? Truncate file to zero length or create text file for writing.? The stream is positioned at the beginning of the file.
w+???? Open for reading and writing.? The file is created if it does not exist, otherwise it is truncated.? The? stream? is? posi‐
?????? tioned at the beginning of the file.
a????? Open? for? appending? (writing at end of file).? The file is created if it does not exist.? The stream is positioned at the
?????? end of the file.
a+???? Open for reading and appending (writing at end of file).? The file is created if it does not exist.? The initial file posi‐
?????? tion for reading is at the beginning of the file, but output is always appended to the end of the file.


上述的形態(tài)字符串都可以再加一個(gè)b字符,如rb、w+b或ab+等組合,加入b 字符用來告訴函數(shù)庫打開的文件為二進(jìn)制文件,而非純文字文件。不過在POSIX系統(tǒng),包含Linux都會(huì)忽略該字符。由fopen()所建立的新文件會(huì)具有S_IRUSR|S_IWUSR|S_IRGRP|S_IWGRP|S_IROTH|S_IWOTH(0666)權(quán)限,此文件權(quán)限也會(huì)參考umask值。
返回值 文件順利打開后,指向該流的文件指針就會(huì)被返回。若果文件打開失敗則返回NULL,并把錯(cuò)誤代碼存在errno 中。
附加說明 一般而言,開文件后會(huì)作一些文件讀取或?qū)懭氲膭?dòng)作,若開文件失敗,接下來的讀寫動(dòng)作也無法順利進(jìn)行,所以在fopen()后請作錯(cuò)誤判斷及處理。
范例

?

?

?


#include<stdio.h>
main()
{
FILE * fp;
fp=fopen(“noexist”,”a+”);
if(fp= =NULL) return;
fclose(fp);
}


1. fprintf
功能:傳送格式化輸出到一個(gè)文件中
表頭文件:#include<stdio.h>
函數(shù)原型:int fprintf(FILE *stream, char *format[, argument,...]);
FILE* 一個(gè)FILE型的指針
char* 格式化輸入函數(shù),和printf里的格式一樣
返回值:成功時(shí)返回轉(zhuǎn)換的字節(jié)數(shù),失敗時(shí)返回一個(gè)負(fù)數(shù)
fp = fopen("/local/test.c","a+");
fprintf(fp,"%s/n",str);

2. fscanf
功能:從一個(gè)流中執(zhí)行格式化輸入
表頭文件:#include<stdio.h>
函數(shù)原型:int fscanf(FILE *stream, char *format[,argument...]);
FILE* 一個(gè)FILE型的指針
char* 格式化輸出函數(shù),和scanf里的格式一樣
返回值:成功時(shí)返回轉(zhuǎn)換的字節(jié)數(shù),失敗時(shí)返回一個(gè)負(fù)數(shù)
fp = fopen("/local/test.c","a+");
fscanf(fp,"%s",str);

3. clearerr(清除文件流的錯(cuò)誤旗標(biāo))
相關(guān)函數(shù) feof
表頭文件 #include<stdio.h>
定義函數(shù) void clearerr(FILE * stream);
函數(shù)說明 clearerr()清除參數(shù)stream指定的文件流所使用的錯(cuò)誤旗標(biāo)。
返回值
 
4.fclose(關(guān)閉文件)
相關(guān)函數(shù) close,fflush,fopen,setbuf
表頭文件 #include<stdio.h>
定義函數(shù) int fclose(FILE * stream);
函數(shù)說明 fclose()用來關(guān)閉先前fopen()打開的文件。此動(dòng)作會(huì)讓緩沖區(qū)內(nèi)的數(shù)據(jù)寫入文件中,并釋放系統(tǒng)所提供的文件資源。
返回值 若關(guān)文件動(dòng)作成功則返回0,有錯(cuò)誤發(fā)生時(shí)則返回EOF并把錯(cuò)誤代碼存到errno。
錯(cuò)誤代碼 EBADF表示參數(shù)stream非已打開的文件。
范例 請參考fopen()。
 
5.fdopen(將文件描述詞轉(zhuǎn)為文件指針)
相關(guān)函數(shù) fopen,open,fclose
表頭文件 #include<stdio.h>
定義函數(shù) FILE * fdopen(int fildes,const char * mode);
函數(shù)說明 fdopen()會(huì)將參數(shù)fildes 的文件描述詞,轉(zhuǎn)換為對應(yīng)的文件指針后返回。參數(shù)mode 字符串則代表著文件指針的流形態(tài),此形態(tài)必須和原先文件描述詞讀寫模式相同。關(guān)于mode 字符串格式請參考fopen()。
返回值 轉(zhuǎn)換成功時(shí)返回指向該流的文件指針。失敗則返回NULL,并把錯(cuò)誤代碼存在errno中。
范例

?

?

?


#include<stdio.h>
main()
{
FILE * fp =fdopen(0,”w+”);
fprintf(fp,”%s/n”,”hello!”);
fclose(fp);
}
執(zhí)行 hello!


6.feof(檢查文件流是否讀到了文件尾)
相關(guān)函數(shù) fopen,fgetc,fgets,fread
表頭文件 #include<stdio.h>
定義函數(shù) int feof(FILE * stream);
函數(shù)說明 feof()用來偵測是否讀取到了文件尾,尾數(shù)stream為fopen()所返回之文件指針。如果已到文件尾則返回非零值,其他情況返回0。
返回值 返回非零值代表已到達(dá)文件尾。
 
7.fflush(更新緩沖區(qū))
相關(guān)函數(shù) write,fopen,fclose,setbuf
表頭文件 #include<stdio.h>
定義函數(shù) int fflush(FILE* stream);
函數(shù)說明 fflush()會(huì)強(qiáng)迫將緩沖區(qū)內(nèi)的數(shù)據(jù)寫回參數(shù)stream指定的文件中。如果參數(shù)stream為NULL,fflush()會(huì)將所有打開的文件數(shù)據(jù)更新。
返回值 成功返回0,失敗返回EOF,錯(cuò)誤代碼存于errno中。
錯(cuò)誤代碼 EBADF 參數(shù)stream 指定的文件未被打開,或打開狀態(tài)為只讀。其它錯(cuò)誤代碼參考write()。
 
8.fgetc(由文件中讀取一個(gè)字符)
相關(guān)函數(shù) open,fread,fscanf,getc
表頭文件 include<stdio.h>
定義函數(shù) nt fgetc(FILE * stream);
函數(shù)說明 fgetc()從參數(shù)stream所指的文件中讀取一個(gè)字符。若讀到文件尾而無數(shù)據(jù)時(shí)便返回EOF。
返回值 getc()會(huì)返回讀取到的字符,若返回EOF則表示到了文件尾。
范例

?

?

?


#include<stdio.h>
main()
{
FILE *fp;
int c;
fp=fopen(“exist”,”r”);
while((c=fgetc(fp))!=EOF)
printf(“%c”,c);
fclose(fp);
}


9.fgets(由文件中讀取一字符串)
相關(guān)函數(shù) open,fread,fscanf,getc
表頭文件 include<stdio.h>
定義函數(shù) har * fgets(char * s,int size,FILE * stream);
函數(shù)說明 fgets()用來從參數(shù)stream所指的文件內(nèi)讀入字符并存到參數(shù)s所指的內(nèi)存空間,直到出現(xiàn)換行字符、讀到文件尾或是已讀了size-1個(gè)字符為止,最后會(huì)加上NULL作為字符串結(jié)束。
返回值 gets()若成功則返回s指針,返回NULL則表示有錯(cuò)誤發(fā)生。
范例

?

?

?


#include<stdio.h>
main()
{
char s[80];
fputs(fgets(s,80,stdin),stdout);
}
執(zhí)行 this is a test /*輸入*/
this is a test /*輸出*/


10.fileno(返回文件流所使用的文件描述詞)
相關(guān)函數(shù) open,fopen
表頭文件 #include<stdio.h>
定義函數(shù) int fileno(FILE * stream);
函數(shù)說明 fileno()用來取得參數(shù)stream指定的文件流所使用的文件描述詞。
返回值 返回文件描述詞。
范例

?

?

?


#include<stdio.h>
main()
{
FILE * fp;
int fd;
fp=fopen(“/etc/passwd”,”r”);
fd=fileno(fp);
printf(“fd=%d/n”,fd);
fclose(fp);
}
執(zhí)行 fd=3


12.fputc(將一指定字符寫入文件流中)
相關(guān)函數(shù) fopen,fwrite,fscanf,putc
表頭文件 #include<stdio.h>
定義函數(shù) int fputc(int c,FILE * stream);
函數(shù)說明 fputc 會(huì)將參數(shù)c 轉(zhuǎn)為unsigned char 后寫入?yún)?shù)stream 指定的文件中。
返回值 fputc()會(huì)返回寫入成功的字符,即參數(shù)c。若返回EOF則代表寫入失敗。
范例

?

?

?


#include<stdio.h>
main()
{
FILE * fp;
char a[26]=”abcdefghijklmnopqrstuvwxyz”;
int i;
fp= fopen(“noexist”,”w”);
for(i=0;i<26;i++)
fputc(a,fp);
fclose(fp);
}


13.fputs(將一指定的字符串寫入文件內(nèi))
相關(guān)函數(shù) fopen,fwrite,fscanf,fputc,putc
表頭文件 #include<stdio.h>
定義函數(shù) int fputs(const char * s,FILE * stream);
函數(shù)說明 fputs()用來將參數(shù)s所指的字符串寫入到參數(shù)stream所指的文件內(nèi)。
返回值 若成功則返回寫出的字符個(gè)數(shù),返回EOF則表示有錯(cuò)誤發(fā)生。
范例 請參考fgets()。
fread(從文件流讀取數(shù)據(jù))
相關(guān)函數(shù) fopen,fwrite,fseek,fscanf
表頭文件 #include<stdio.h>
定義函數(shù) size_t fread(void * ptr,size_t size,size_t nmemb,FILE * stream);
函數(shù)說明 fread()用來從文件流中讀取數(shù)據(jù)。參數(shù)stream為已打開的文件指針,參數(shù)ptr 指向欲存放讀取進(jìn)來的數(shù)據(jù)空間,讀取的字符數(shù)以參數(shù)size*nmemb來決定。Fread()會(huì)返回實(shí)際讀取到的nmemb數(shù)目,如果此值比參數(shù)nmemb 來得小,則代表可能讀到了文件尾或有錯(cuò)誤發(fā)生,這時(shí)必須用feof()或ferror()來決定發(fā)生什么情況。
返回值 返回實(shí)際讀取到的nmemb數(shù)目。
附加說明
范例

?

?

?


#include<stdio.h>
#define nmemb 3
struct test
{
char name[20];
int size;
}s[nmemb];
int main(){
FILE * stream;
int i;
stream = fopen(“/tmp/fwrite”,”r”);
fread(s,sizeof(struct test),nmemb,stream);
fclose(stream);
for(i=0;i<nmemb;i++)
printf(“name[%d]=%-20s:size[%d]=%d/n”,i,s.name,i,s.size);
}
執(zhí)行
name[0]=Linux! size[0]=6
name[1]=FreeBSD! size[1]=8
name[2]=Windows2000 size[2]=11


14.freopen(打開文件)
相關(guān)函數(shù) fopen,fclose
表頭文件 #include<stdio.h>
定義函數(shù) FILE * freopen(const char * path,const char * mode,FILE * stream);
函數(shù)說明 參數(shù)path字符串包含欲打開的文件路徑及文件名,參數(shù)mode請參考fopen()說明。參數(shù)stream為已打開的文件指針。Freopen()會(huì)將原stream所打開的文件流關(guān)閉,然后打開參數(shù)path的文件。
返回值 文件順利打開后,指向該流的文件指針就會(huì)被返回。如果文件打開失敗則返回NULL,并把錯(cuò)誤代碼存在errno 中。
范例

?

?

?


#include<stdio.h>
main()
{
FILE * fp;
fp=fopen(“/etc/passwd”,”r”);
fp=freopen(“/etc/group”,”r”,fp);
fclose(fp);
}


15.fseek(移動(dòng)文件流的讀寫位置)
相關(guān)函數(shù) rewind,ftell,fgetpos,fsetpos,lseek
表頭文件 #include<stdio.h>
定義函數(shù) int fseek(FILE * stream,long offset,int whence);
函數(shù)說明 fseek()用來移動(dòng)文件流的讀寫位置。參數(shù)stream為已打開的文件指針,參數(shù)offset為根據(jù)參數(shù)whence來移動(dòng)讀寫位置的位移數(shù)。
參數(shù) whence為下列其中一種:
SEEK_SET從距文件開頭offset位移量為新的讀寫位置。SEEK_CUR 以目前的讀寫位置往后增加offset個(gè)位移量。
SEEK_END將讀寫位置指向文件尾后再增加offset個(gè)位移量。
當(dāng)whence值為SEEK_CUR 或SEEK_END時(shí),參數(shù)offset允許負(fù)值的出現(xiàn)。
下列是較特別的使用方式:
1) 欲將讀寫位置移動(dòng)到文件開頭時(shí):fseek(FILE *stream,0,SEEK_SET);
2) 欲將讀寫位置移動(dòng)到文件尾時(shí):fseek(FILE *stream,0,0SEEK_END);

返回值 當(dāng)調(diào)用成功時(shí)則返回0,若有錯(cuò)誤則返回-1,errno會(huì)存放錯(cuò)誤代碼。
附加說明 fseek()不像lseek()會(huì)返回讀寫位置,因此必須使用ftell()來取得目前讀寫的位置。
范例

?

?

?


#include<stdio.h>
main()
{
FILE * stream;
long offset;
fpos_t pos;
stream=fopen(“/etc/passwd”,”r”);
fseek(stream,5,SEEK_SET);
printf(“offset=%d/n”,ftell(stream));
rewind(stream);
fgetpos(stream,&pos);
printf(“offset=%d/n”,pos);
pos=10;
fsetpos(stream,&pos);
printf(“offset = %d/n”,ftell(stream));
fclose(stream);
}
執(zhí)行 offset = 5
offset =0
offset=10


16.ftell(取得文件流的讀取位置)
相關(guān)函數(shù) fseek,rewind,fgetpos,fsetpos
表頭文件 #include<stdio.h>
定義函數(shù) long ftell(FILE * stream);
函數(shù)說明 ftell()用來取得文件流目前的讀寫位置。參數(shù)stream為已打開的文件指針。
返回值 當(dāng)調(diào)用成功時(shí)則返回目前的讀寫位置,若有錯(cuò)誤則返回-1,errno會(huì)存放錯(cuò)誤代碼。
錯(cuò)誤代碼 EBADF 參數(shù)stream無效或可移動(dòng)讀寫位置的文件流。
范例 參考fseek()。
 
17.fwrite(將數(shù)據(jù)寫至文件流)
相關(guān)函數(shù) fopen,fread,fseek,fscanf
表頭文件 #include<stdio.h>
定義函數(shù) size_t fwrite(const void * ptr,size_t size,size_t nmemb,FILE * stream);
函數(shù)說明 fwrite()用來將數(shù)據(jù)寫入文件流中。參數(shù)stream為已打開的文件指針,參數(shù)ptr 指向欲寫入的數(shù)據(jù)地址,總共寫入的字符數(shù)以參數(shù)size*nmemb來決定。Fwrite()會(huì)返回實(shí)際寫入的nmemb數(shù)目。
返回值 返回實(shí)際寫入的nmemb數(shù)目。
范例

?

?

?


#include<stdio.h>
#define set_s (x,y) {strcoy(s[x].name,y);s[x].size=strlen(y);}
#define nmemb 3
struct test
{
char name[20];
int size;
}s[nmemb];
main()
{
FILE * stream;
set_s(0,”Linux!”);
set_s(1,”FreeBSD!”);
set_s(2,”Windows2000.”);
stream=fopen(“/tmp/fwrite”,”w”);
fwrite(s,sizeof(struct test),nmemb,stream);
fclose(stream);
}
執(zhí)行 參考fread()。


18.getc(由文件中讀取一個(gè)字符)
相關(guān)函數(shù) read,fopen,fread,fgetc
表頭文件 #include<stdio.h>
定義函數(shù) int getc(FILE * stream);
函數(shù)說明 getc()用來從參數(shù)stream所指的文件中讀取一個(gè)字符。若讀到文件尾而無數(shù)據(jù)時(shí)便返回EOF。雖然getc()與fgetc()作用相同,但getc()為宏定義,非真正的函數(shù)調(diào)用。
返回值 getc()會(huì)返回讀取到的字符,若返回EOF則表示到了文件尾。
范例 參考fgetc()。
 
19.getchar(由標(biāo)準(zhǔn)輸入設(shè)備內(nèi)讀進(jìn)一字符)
相關(guān)函數(shù) fopen,fread,fscanf,getc
表頭文件 #include<stdio.h>
定義函數(shù) int getchar(void);
函數(shù)說明 getchar()用來從標(biāo)準(zhǔn)輸入設(shè)備中讀取一個(gè)字符。然后將該字符從unsigned char轉(zhuǎn)換成int后返回。
返回值 getchar()會(huì)返回讀取到的字符,若返回EOF則表示有錯(cuò)誤發(fā)生。
附加說明 getchar()非真正函數(shù),而是getc(stdin)宏定義。
范例

?

?

?


#include<stdio.h>
main()
{
FILE * fp;
int c,i;
for(i=0li<5;i++)
{
c=getchar();
putchar(c);
}
}
執(zhí)行 1234 /*輸入*/
1234 /*輸出*/


20.gets(由標(biāo)準(zhǔn)輸入設(shè)備內(nèi)讀進(jìn)一字符串)
相關(guān)函數(shù) fopen,fread,fscanf,fgets
表頭文件 #include<stdio.h>
定義函數(shù) char * gets(char *s);
函數(shù)說明 gets()用來從標(biāo)準(zhǔn)設(shè)備讀入字符并存到參數(shù)s所指的內(nèi)存空間,直到出現(xiàn)換行字符或讀到文件尾為止,最后加上NULL作為字符串結(jié)束。
返回值 gets()若成功則返回s指針,返回NULL則表示有錯(cuò)誤發(fā)生。
附加說明 由于gets()無法知道字符串s的大小,必須遇到換行字符或文件尾才會(huì)結(jié)束輸入,因此容易造成緩沖溢出的安全性問題。建議使用fgets()取代。
范例 參考fgets()
 
21.mktemp(產(chǎn)生唯一的臨時(shí)文件名)
相關(guān)函數(shù) tmpfile
表頭文件 #include<stdlib.h>
定義函數(shù) char * mktemp(char * template);
函數(shù)說明 mktemp()用來產(chǎn)生唯一的臨時(shí)文件名。參數(shù)template所指的文件名稱字符串中最后六個(gè)字符必須是XXXXXX。產(chǎn)生后的文件名會(huì)借字符串指針返回。
返回值 文件順利打開后,指向該流的文件指針就會(huì)被返回。如果文件打開失敗則返回NULL,并把錯(cuò)誤代碼存在errno中。
附加說明 參數(shù)template所指的文件名稱字符串必須聲明為數(shù)組,如:
char template[ ]=”template-XXXXXX”;
不可用char * template=”template-XXXXXX”;
范例

?

?

?


#include<stdlib.h>
main()
{
char template[ ]=”template-XXXXXX”;
mktemp(template);
printf(“template=%s/n”,template);
}


22.putc(將一指定字符寫入文件中)
相關(guān)函數(shù) fopen,fwrite,fscanf,fputc
表頭文件 #include<stdio.h>
定義函數(shù) int putc(int c,FILE * stream);
函數(shù)說明 putc()會(huì)將參數(shù)c轉(zhuǎn)為unsigned char后寫入?yún)?shù)stream指定的文件中。雖然putc()與fputc()作用相同,但putc()為宏定義,非真正的函數(shù)調(diào)用。
返回值 putc()會(huì)返回寫入成功的字符,即參數(shù)c。若返回EOF則代表寫入失敗。
范例 參考fputc()。
 
23.putchar(將指定的字符寫到標(biāo)準(zhǔn)輸出設(shè)備)
相關(guān)函數(shù) fopen,fwrite,fscanf,fputc
表頭文件 #include<stdio.h>
定義函數(shù) int putchar (int c);
函數(shù)說明 putchar()用來將參數(shù)c字符寫到標(biāo)準(zhǔn)輸出設(shè)備。
返回值 putchar()會(huì)返回輸出成功的字符,即參數(shù)c。若返回EOF則代表輸出失敗。
附加說明 putchar()非真正函數(shù),而是putc(c,stdout)宏定義。
范例 參考getchar()。
 
24.rewind(重設(shè)文件流的讀寫位置為文件開頭)
相關(guān)函數(shù) fseek,ftell,fgetpos,fsetpos
表頭文件 #include<stdio.h>
定義函數(shù) void rewind(FILE * stream);
函數(shù)說明 rewind()用來把文件流的讀寫位置移至文件開頭。參數(shù)stream為已打開的文件指針。此函數(shù)相當(dāng)于調(diào)用fseek(stream,0,SEEK_SET)。
返回值
范例 參考fseek()

25.setbuf(設(shè)置文件流的緩沖區(qū))

相關(guān)函數(shù) setbuffer,setlinebuf,setvbuf
表頭文件 #include<stdio.h>
定義函數(shù) void setbuf(FILE * stream,char * buf);
函數(shù)說明 在打開文件流后,讀取內(nèi)容之前,調(diào)用setbuf()可以用來設(shè)置文件流的緩沖區(qū)。參數(shù)stream為指定的文件流,參數(shù)buf指向自定的緩沖區(qū)起始地址。如果參數(shù)buf為NULL指針,則為無緩沖IO。Setbuf()相當(dāng)于調(diào)用:setvbuf(stream,buf,buf?_IOFBF:_IONBF,BUFSIZ)
返回值
 
26.setbuffer(設(shè)置文件流的緩沖區(qū))
相關(guān)函數(shù) setlinebuf,setbuf,setvbuf
表頭文件 #include<stdio.h>
定義函數(shù) void setbuffer(FILE * stream,char * buf,size_t size);
函數(shù)說明 在打開文件流后,讀取內(nèi)容之前,調(diào)用setbuffer()可用來設(shè)置文件流的緩沖區(qū)。參數(shù)stream為指定的文件流,參數(shù)buf指向自定的緩沖區(qū)起始地址,參數(shù)size為緩沖區(qū)大小。
返回值

27.setlinebuf(設(shè)置文件流為線性緩沖區(qū))
相關(guān)函數(shù) setbuffer,setbuf,setvbuf
表頭文件 #include<stdio.h>
定義函數(shù) void setlinebuf(FILE * stream);
函數(shù)說明 setlinebuf()用來設(shè)置文件流以換行為依據(jù)的無緩沖IO。相當(dāng)于調(diào)用:setvbuf(stream,(char * )NULL,_IOLBF,0);請參考setvbuf()。
返回值

28.setvbuf(設(shè)置文件流的緩沖區(qū))
相關(guān)函數(shù) setbuffer,setlinebuf,setbuf
表頭文件 #include<stdio.h>
定義函數(shù) int setvbuf(FILE * stream,char * buf,int mode,size_t size);
函數(shù)說明 在打開文件流后,讀取內(nèi)容之前,調(diào)用setvbuf()可以用來設(shè)置文件流的緩沖區(qū)。參數(shù)stream為指定的文件流,參數(shù)buf指向自定的緩沖區(qū)起始地址,參數(shù)size為緩沖區(qū)大小,參數(shù)mode有下列幾種
_IONBF 無緩沖IO
_IOLBF 以換行為依據(jù)的無緩沖IO
_IOFBF 完全無緩沖IO。如果參數(shù)buf為NULL指針,則為無緩沖IO。
返回值

29.ungetc(將指定字符寫回文件流中)
相關(guān)函數(shù) fputc,getchar,getc
表頭文件 #include<stdio.h>
定義函數(shù) int ungetc(int c,FILE * stream);
函數(shù)說明 ungetc()將參數(shù)c字符寫回參數(shù)stream所指定的文件流。這個(gè)寫回的字符會(huì)由下一個(gè)讀取文件流的函數(shù)取得。
返回值 成功則返回c 字符,若有錯(cuò)誤則返回EOF。

?

?

?


#include <stdio.h>
#include <stdlib.h>
int main()
{
???? FILE *fp = NULL;
???? char* str;
???? char re;
???? int num = 10;
???? str = (char*)malloc(100);
???? //snprintf(str, 10,"test: %s", "0123456789012345678");
??? // printf("str=%s/n", str);
???? fp = fopen("/local/test.c","a+");
???? if (fp==NULL){
??????? printf("Fail to open file/n");
???? }
//???? fseek(fp,-1,SEEK_END);
???? num = ftell(fp);
???? printf("test file long:%d/n",num);
???? fscanf(fp,"%s",str);
???? printf("str = %s/n",str);
???? printf("test a: %s/n",str);
???? while ((re=getc(fp))!=EOF){//getc可以用作fgetc用
??????? printf("%c",re);
???? }
???? //fread(str,10,10,fp);
???? fgets(str,100,fp);
???? printf("test a: %s/n",str);
???? sprintf(str,"xiewei test is:%s", "ABCDEFGHIGKMNI");
???? printf("str2=%s/n", str);
?? //? fprintf(fp,"%s/n",str);
???? fwrite(str,2,10,fp);
???? num = ftell(fp);
???? if(str!=NULL){
??????? free(str);
???? }
???? fclose(fp);
???? return 0;
}

以上就是C語言文件操作函數(shù)大全,希望對大家有所幫助,如有不足之處,請留言,小編會(huì)及時(shí)更正。感謝朋友們對武林技術(shù)頻道的支持!

發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表

圖片精選

国产视频一区二区不卡| 国产精品久久91| 欧美一级特黄aaa| 欧美专区在线播放| 成人一区二区| 亚洲xxxx视频| 国产精品一区二区三区在线观| 国产剧情一区| 日本黄色大片视频| 日本三级黄色网址| 日韩欧美色电影| 亚洲熟妇一区二区| 亚洲综合五月天| 嫩草影院一区二区| 国产丝袜在线| 久久精品国产99| 一区二区三区四区欧美| 欧美成人精品3d动漫h| 色综合五月天导航| 一级黄色大片网站| 91国产丝袜播放在线| 国产乱码精品一区二区三区av| 久久久av网站| 日韩高清有码在线| 欧洲亚洲精品在线| 美女扒开腿让男人桶爽久久动漫| 久久久久噜噜噜亚洲熟女综合| 中文字幕日本欧美| 国产激情小视频| ww久久综合久中文字幕| 国产性猛交xxxx免费看久久| 一区二区三区不卡在线视频| 亚洲综合色站| 精品久久久久久无码国产| 成人影视亚洲图片在线| 日本少妇xxxx动漫| 男人添女荫道口女人有什么感觉| 1024成人网| 日韩美女网站| 久热爱精品视频线路一| 国产精品网站导航| 中文字幕一区二区人妻痴汉电车| 成人做爰69片免费看网站| 国产乱人视频免费播放| 在线观看精品视频一区二区三区| 日韩精品欧美精品| 欧美亚洲成人精品| 国产精品久久777777毛茸茸| 成人永久免费网站| 亚洲熟妇无码一区二区三区导航| 国产sm主人调教女m视频| 亚洲欧美小视频| 久久视频免费在线| 欧美一区 二区 三区| 欧美日韩国产不卡| 欧美 日韩 国产 精品| 亚洲18在线看污www麻豆| 99久久er热在这里只有精品66| 69中国xxxxxxxxx69| 欧美日韩在线播放一区| 国产福利av网站| 中文字幕日韩一区| 日韩成人av影院| 国产亚洲精品福利| 午夜啪啪福利视频| 99re在线视频这里只有精品| 日韩成人av网址| 欧美性xxxx极品hd欧美风情| 亚洲一区二区在线免费观看视频| 欧美在线一区二区三区四区| 天堂在线观看免费视频| 亚洲色图综合久久| 国产一区二区免费在线观看| 在线看片不卡| 9色视频在线观看| 精品视频久久久久久| www.香蕉视频在线观看| 日韩情爱电影在线观看| 懂色av一区二区三区| 欧美一区国产一区| 在线高清一区| 青青国产在线观看| 岛国爱情动作片在线| 国产男女猛烈无遮挡在线喷水| 国产成人在线观看| 久久福利视频一区二区| 亚洲www啪成人一区二区麻豆| 亚洲黄色免费电影| 2019中文字幕在线电影免费| 久久国产精品露脸对白| h网站视频在线观看| 99pao成人国产永久免费视频| 国产精品久久久久精k8| 日韩亚洲欧美在线| 免费看黄色的网站| 在线观看美女网站大全免费| 久操久操久操| 国产成人美女视频| 在线观看视频色| segui88久久综合9999| 伊人在我在线看导航| xfplay先锋影音夜色资源站| 色爱av综合网| 一道本在线免费视频| 最近国语视频在线观看免费播放| 色噜噜噜噜噜噜| 日本精品视频在线播放| 神马电影网我不卡| 久久综合亚洲| 天堂在线中文网| 日韩女优视频免费观看| 性欧美69式xxxxx| 牛牛精品在线| 秋霞av国产精品一区| 色乱码一区二区三区熟女| 8x8x8国产精品| 国产亚洲欧美日韩在线观看一区二区| 国产伦精品一区二区三区视频痴汉| 国产一级激情| 国产成人aaa| 国产精品久久久久久久免费看| 四虎永久免费影库二三区| 色棕色天天综合网| 免费一级suv好看的国产网站| 致1999电视剧免费观看策驰影院| 免费毛片网站在线观看| 91精品国产综合久久香蕉麻豆| 玖玖爱这里只有精品| 亚洲男人天堂九九视频| 91精品在线观看国产| 国产精品传媒精东影业在线| 老司机午夜免费精品视频| 国产情侣在线视频| sdde在线播放一区二区| 午夜精品久久久久久久99热浪潮| 国产精品久久久久久久久久东京| 精品国产成人av| 秋霞影院一区二区| 精品欧美一区免费观看α√| 欧美成人免费全部| 嫩草成人www欧美| 女生裸体视频一区二区三区| 精品999久久久| 欧美精品色婷婷五月综合| 欧美激情视频网站| a优女a优女片| 欧美一区二区| 欧美精品黑人猛交高潮| 中文字幕av久久爽一区| 中文字幕5566| 精品影片在线观看的网站| 中文字幕乱码亚洲精品一区| 成人精品免费在线观看| aaa毛片在线观看| 中文字幕中文字幕在线中一区高清| 国产精品久久久久久久久久小说| 国产老女人精品毛片久久| 成人自拍视频在线观看| 三区在线观看| av在线不卡电影| 国产一区二区免费电影| 久久久久亚洲精品成人网小说| 久久婷婷五月综合| 91看片在线观看| 黄色漫画在线免费看| 手机福利小视频在线播放| 视频免费观看| 性欧美xxxx大乳国产app| 一区二区三区国产精华| 在线成年人视频| 狠狠做六月爱婷婷综合aⅴ| caoporn-草棚在线视频最| 午夜精品成人在线| 国产精品免费精品自在线观看| 国产一级中文字幕| 亚洲精品天天看| 波多野结衣在线观看视频| 日韩免费一级视频| 成年人免费在线视频| 亚洲久久在线观看| 黄网站在线观看| 精品久久ai| 人与动物性xxxx| 日韩成人精品一区| 免费网站免费进入在线| 亚洲免费观看高清完整版在线| 国产不卡在线一区| 国产精品久久久久免费| 欧美孕妇性xxxⅹ精品hd| 欧美三级日韩三级国产三级| 久久成人久久爱| 日韩欧美一区二区视频在线播放| 特黄特黄的视频| 精品一区二区三区的国产在线观看| 草莓污污视频在线观看| 免费一级片在线观看| 国产精品欧美一区二区| 人妻人人澡人人添人人爽| 成人av黄色| 九色自拍视频| 久久精品国内一区二区三区水蜜桃| 色先锋av资源中文字幕| 亚洲黄色精品视频| 久久av二区| 91精品国产色综合久久ai换脸| 中文字幕一二区| 欧美午夜片欧美片在线观看| 成人一道本在线| 九色蝌蚪国产| www.男人的天堂.com| 欧美日韩1234| 亚洲欧洲精品一区二区精品久久久| 精品按摩偷拍| 国产精品美乳一区二区免费| 怡红院av久久久久久久| 国产精选一区二区三区不卡催乳| av福利在线播放| 成人乱码一区二区三区| 操91在线视频| 日韩精品一区二区在线视频| 亚洲国产高清福利视频| 精品一区二区三区蜜桃| 极品尤物一区二区三区| 青青青手机在线视频| 激情综合网站| 亚洲一区在线观看免费观看电影高清| 一本色道久久88| 欧美性生交xxxxxdddd| 无码人妻aⅴ一区二区三区69岛| 亚洲国产精品视频在线| 日韩免费观看高清完整版在线观看| 99麻豆久久久国产精品免费| 91丨porny丨在线| 麻豆免费在线观看| 香蕉视频在线网址| 欧美日韩不卡一区二区| 国产精品视频网站在线观看| 亚洲福利合集| 免费观看成人性生生活片| 中文娱乐网av| 在线日韩av片| 国产黄色在线网站| 久久一二三四区| 福利视频导航网| 91电影在线观看| 亚洲女同一区| 日韩精品免费一区二区三区| 国产极品一区二区三区| 日本成人在线视频网址| 成年人午夜视频在线观看| 国产精品久久久一区麻豆最新章节| 国产一区二区三区四区三区四| 丁香六月婷婷综合| 国产91精品精华液一区二区三区| 最近中文字幕在线中文高清版| 丁香五月缴情综合网| 五月天电影免费在线观看一区| 国产精品国产三级国产专业不| 在线成年人视频| 精品人妻一区二区三| 国产精品午夜在线观看| 国产无限制自拍| 欧美成人免费全部网站| 国产精品免费电影| 麻豆视频在线免费观看| 亚洲狠狠婷婷综合久久久| 337p日本欧洲亚洲大胆张筱雨| 一本色道久久综合狠狠躁的番外| 国产精品入口麻豆免费看| 51蜜桃传媒精品一区二区| 中文国产字幕在线观看| eeuss影影院www在线播放| 蜜臀精品一区二区三区在线观看| heyzo高清中文字幕在线| 福利资源在线久| 国内偷拍精品视频| 在线影视一区二区三区| 久久久久中文字幕| 国产乱视频在线观看播放| 国产女人爽到高潮a毛片| 国产精品久久久久四虎| 中文字幕中文字幕在线中文字幕三区| 久久草.com| 超碰国产在线| 亚洲电影免费观看高清完整版在线观看| 四虎成人精品永久免费av| 成人免费看视频| 小香蕉视频在线| 五月婷婷久久久| 国产成人免费视频网站| 国产日本在线| 五月天综合激情网| 亚洲欧美另类一区| 日本在线视频www鲁啊鲁| 99re66热这里只有精品4| 国产网站免费在线观看| 久久综合亚洲精品| 国产免费av高清在线| 久久一区二区三区av| 国产网友自拍视频导航网站在线观看| 亚洲欧美激情视频在线观看一区二区三区| 久久激情网站| 成人欧美一区二区三区黑人免费| 超碰91人人草人人干| 免费黄色大片| 又黄又爽的视频在线观看| 久久久久久久久久久久国产精品| 一级毛片免费在线| 三级黄色片免费观看| 成在在线免费视频| 国产色综合一区| 午夜国产福利一区二区| 午夜影院在线免费观看| 一片黄亚洲嫩模| www.亚洲一区二区三区| 国产精品爽爽爽| 中文字幕亚洲一区二区va在线| 国产午夜精品麻豆| 国产成人在线网站| 久久久www成人免费无遮挡大片| 亚洲天堂伊人网| 精品人妻一区二区三区视频| 国产成人在线网站| 久久综合伊人77777麻豆| 欧美资源在线| 日本高清精品| 欧洲视频在线免费观看| 在线免费观看羞羞视频一区二区|