bl双性强迫侵犯h_国产在线观看人成激情视频_蜜芽188_被诱拐的少孩全彩啪啪漫画

文件讀取c語(yǔ)言函數(shù),C語(yǔ)言 讀取文件

C語(yǔ)言讀取文件數(shù)據(jù)

使用fopen,fscanf函數(shù)即可讀取文件數(shù)據(jù)。

目前累計(jì)服務(wù)客戶成百上千家,積累了豐富的產(chǎn)品開(kāi)發(fā)及服務(wù)經(jīng)驗(yàn)。以網(wǎng)站設(shè)計(jì)水平和技術(shù)實(shí)力,樹(shù)立企業(yè)形象,為客戶提供網(wǎng)站設(shè)計(jì)、成都網(wǎng)站建設(shè)、網(wǎng)站策劃、網(wǎng)頁(yè)設(shè)計(jì)、網(wǎng)絡(luò)營(yíng)銷、VI設(shè)計(jì)、網(wǎng)站改版、漏洞修補(bǔ)等服務(wù)。創(chuàng)新互聯(lián)建站始終以務(wù)實(shí)、誠(chéng)信為根本,不斷創(chuàng)新和提高建站品質(zhì),通過(guò)對(duì)領(lǐng)先技術(shù)的掌握、對(duì)創(chuàng)意設(shè)計(jì)的研究、對(duì)客戶形象的視覺(jué)傳遞、對(duì)應(yīng)用系統(tǒng)的結(jié)合,為客戶提供更好的一站式互聯(lián)網(wǎng)解決方案,攜手廣大客戶,共同發(fā)展進(jìn)步。

1、fopen的函數(shù)原型:FILE

*

fopen(const

char

*

path,const

char

*

mode);

fopen函數(shù)的第一個(gè)參數(shù)是文件路徑,第二個(gè)參數(shù)是打開(kāi)方式,有以下幾種方式:

r

以只讀方式打開(kāi)文件,該文件必須存在。

r+

以可讀寫(xiě)方式打開(kāi)文件,該文件必須存在。

rb+

讀寫(xiě)打開(kāi)一個(gè)二進(jìn)制文件,允許讀數(shù)據(jù)。

rw+

讀寫(xiě)打開(kāi)一個(gè)文本文件,允許讀和寫(xiě)。

w

打開(kāi)只寫(xiě)文件,若文件存在則文件長(zhǎng)度清為0,即該文件內(nèi)容會(huì)消失。若文件不存在則建立該文件。

w+

打開(kāi)可讀寫(xiě)文件,若文件存在則文件長(zhǎng)度清為零,即該文件內(nèi)容會(huì)消失。若文件不存在則建立該文件。

a

以附加的方式打開(kāi)只寫(xiě)文件。若文件不存在,則會(huì)建立該文件,如果文件存在,寫(xiě)入的數(shù)據(jù)會(huì)被加到文件尾,即文件原先的內(nèi)容會(huì)被保留。(EOF符保留)

a+

以附加方式打開(kāi)可讀寫(xiě)的文件。若文件不存在,則會(huì)建立該文件,如果文件存在,寫(xiě)入的數(shù)據(jù)會(huì)被加到文件尾后,即文件原先的內(nèi)容會(huì)被保留。

(原來(lái)的EOF符不保留)

wb

只寫(xiě)打開(kāi)或新建一個(gè)二進(jìn)制文件;只允許寫(xiě)數(shù)據(jù)。

wb+

讀寫(xiě)打開(kāi)或建立一個(gè)二進(jìn)制文件,允許讀和寫(xiě)。

wt+

讀寫(xiě)打開(kāi)或著建立一個(gè)文本文件;允許讀寫(xiě)。

at+

讀寫(xiě)打開(kāi)一個(gè)文本文件,允許讀或在文本末追加數(shù)據(jù)。

ab+

讀寫(xiě)打開(kāi)一個(gè)二進(jìn)制文件,允許讀或在文件末追加數(shù)據(jù)。

上述的形態(tài)字符串都可以再加一個(gè)b字符,如rb、w+b或ab+等組合,加入b

字符用來(lái)告訴函數(shù)庫(kù)打開(kāi)的文件為二進(jìn)制文件,而非純文字文件。

返回值:文件順利打開(kāi)后,指向該流的文件指針就會(huì)被返回。如果文件打開(kāi)失敗則返回NULL,并把錯(cuò)誤代碼存在errno中。

2、例程:

#include

#define F_PATH "d:\\myfile\\file.dat"

char c;

int main(){

FILE*fp=NULL;//需要注意

fp=fopen(F_PATH,"r");

if(NULL==fp) return -1;//要返回錯(cuò)誤代碼

while(fscanf(fp,"%c",c)!=EOF) printf("%c",c); //從文本中讀入并在控制臺(tái)打印出來(lái)

fclose(fp);

fp=NULL;//需要指向空,否則會(huì)指向原打開(kāi)文件地址

return 0;

}

請(qǐng)問(wèn)C語(yǔ)言對(duì)文件的讀取有哪些函數(shù),都有什么功能?像fseek();fscanf();fread......什么的

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

13.1C語(yǔ)言文件

1,兩種文件存取方式(輸入,輸出方式)

順序存取

直接存取

2,數(shù)據(jù)的兩種存放形式

文本文件

二進(jìn)制文件

13.2文件指針

定義文件類型指針變量的一般形式:

FILE *指針變量名;

例如:

FILE *fp1,*fp2;

13.3打開(kāi)文件

在使用文件之前,需打開(kāi)文件.在C里使用fopen函數(shù)打開(kāi)文件.格式為:

fopen(文件名,文件使用方式);

此函數(shù)返回一個(gè)指向FILE類型的指針.如:

FILE *fp;

fp=fopen("file_1","r");

如果調(diào)用成功,fp就指向file_1,否則返回為NULL,所以為了保證文件的正確使用,要進(jìn)行測(cè)試.采用如下語(yǔ)句:

If((fp=fopen("file_1","r"))==NULL)

{

printf("Cannot open this file\n");

exit(0);

}

最常用的文件使用方式及其含義如下:

1,"r".為讀而打開(kāi)文本文件.(不存在則出錯(cuò))

2,"rb".為讀而打開(kāi)二進(jìn)制文件.

3,"w".為寫(xiě)而打開(kāi)文本文件.(若不存在則新建,反之,則從文件起始位置寫(xiě),原內(nèi)容將被覆蓋)

4,"wb".為寫(xiě)而打開(kāi)二進(jìn)制文件.

5,"a".為在文件后面添加數(shù)據(jù)而打開(kāi)文本文件.(若不存在,則新建;反之,在原文件后追加)

6,"ab".為在文件后面添加數(shù)據(jù)而打開(kāi)一個(gè)二進(jìn)制文件.

最常用的文件使用方式及其含義如下:

7,"r+".為讀和寫(xiě)而打開(kāi)文本文件.(讀時(shí),從頭開(kāi)始;在寫(xiě)數(shù)據(jù)時(shí),新數(shù)據(jù)只覆蓋所占的空間,其后不變)

8,"rb+".為讀和寫(xiě)而打開(kāi)二進(jìn)制文件.只是在隨后的讀寫(xiě)時(shí),可以由位置函數(shù)設(shè)置讀和寫(xiě)的起始位置.

9,"w+".首先建立一個(gè)新文件,進(jìn)行寫(xiě)操作,隨后可以從頭開(kāi)始讀.(若文件存在,原內(nèi)容將全部消失)

10,"wb+".功能與"w+"同.只是在隨后的讀寫(xiě)時(shí),可以由位置函數(shù)設(shè)置讀和寫(xiě)的起始位置.

最常用的文件使用方式及其含義如下:

11,"a+".功能與"a"相同;只是在文件尾部添加新的數(shù)據(jù)后,可以從頭開(kāi)始讀.

12,"ab+".功能與"a+"相同;只是在文件尾部添加新數(shù)據(jù)之后,可以由位置函數(shù)設(shè)置開(kāi)始讀的起始位置.

13.4關(guān)閉文件

當(dāng)文件的讀寫(xiě)操作完成之后,使用fclose函數(shù)關(guān)閉文件.格式如下:

fclose(文件指針)

如:fclose(fp);

13.5調(diào)用getc(fgetc)和putc(fputc)函數(shù)進(jìn)行輸入和輸出

1,調(diào)用putc(或fputc)函數(shù)輸出一個(gè)字符

調(diào)用形式為:

putc(ch,fp);

功能是:將字符ch寫(xiě)到文件指針fp所指的文件中去.當(dāng)輸出成功,putc函數(shù)返回所輸出的字符;否則,返回一個(gè)EOF值.EOF是在stdio.h庫(kù)函數(shù)文件中定義的符號(hào)常量,其值等于-1.

13.5調(diào)用getc(fgetc)和putc(fputc)函數(shù)進(jìn)行輸入和輸出

例如:把從鍵盤(pán)輸入的文本按原樣輸出到名為file_1.dat文件中,用字符@作為鍵盤(pán)輸入結(jié)束標(biāo)志.

#include

Void main()

{

FILE *fpout;

char ch;

if(fpout=fpopen("file_1","w")==NULL)

{

printf("Cannot open this file!\n");

exit(0);

}

ch=getchar();

while(ch!='@')

{ fputc(ch,fpout); ch=getchar(); }

fclose(fpout);

}

2.調(diào)用getc(或fgetc)函數(shù)輸入一個(gè)字符

調(diào)用形式為:

ch=getc(pf);

功能是:從pf指定的文件中讀如一個(gè)字符,并把它作為函數(shù)值返回.

例如:把一個(gè)已存在磁盤(pán)上的file_1.dat文本文件中的內(nèi)容,原樣輸出到終端屏幕上.

#include

void main(){

FILE *fpin;

char ch;

if((fpin=fopen("file_1.dat","r"))==NULL)

{ printf("Cann't open this file!\n");exit(0);}

ch=fgetc(fpin);

while (ch!=EOF)

{ putchar(ch); ch=fgetc(fpin);}

fclose(fpin);

}

13.6判斷文件結(jié)束函數(shù)feof

EOF可以作為文本文件的結(jié)束 標(biāo)志,但不能作為二進(jìn)制文件的結(jié)束符.feof函數(shù)既可以判斷二進(jìn)制文件,又可以判斷文本文件.

例:編寫(xiě)程序,用于把一個(gè)文本文件(源)復(fù)制到另一個(gè)文件(目的)中,源文件名和目的文件名由命令行輸入.命令形式如下:

可執(zhí)行程序名 源文件名 目的文件名

#include

void filecopy(FILE* ,FILE *);

void main(int argc,char *argv[]){

FILE *fpin,*fpout;

if(argc==3)

{ fpin=fopen(argv[1],"r");

fpout=fopen(argv[2],"w");

filecopy(fpin,fpout);

fclose(fpin);fclose(fpout);

}

else if(argc3)

printf("The file names too many!!\n";

else

printf("There are no file names for input or output!!\n );

}

void filecopy(FILE *fpin,FILE *fpout)

{

char ch;

ch=getc(fpin);

while(!feof(fpin))

{putc(ch,fpout); ch=getc(fpin);}

}

13.7fscanf函數(shù)和fprintf函數(shù)

1,fscanf函數(shù)

fscanf只能從文本文件中按格式輸入,和scanf函數(shù)相似,只不過(guò)輸入的對(duì)象是磁盤(pán)上文本文件中的數(shù)據(jù).調(diào)用形式為:

fscanf(文件指針,格式控制字符串,輸入項(xiàng)表)

例如:fscanf(fp,"%d%d",a,b);

fscanf(stdin,"%d%d",a,b);

等價(jià)于scanf("%d%d",a,b);

3.fprintf函數(shù)

fprintf函數(shù)按格式將內(nèi)存中的數(shù)據(jù)轉(zhuǎn)換成對(duì)應(yīng)的字符,并以ASCII代碼形式輸出到文本文件中.Fprintf函數(shù)和printf函數(shù)相似,只是將輸出的內(nèi)容按格式存放到磁盤(pán)的文本文件中.調(diào)用形式如下:

fprintf(文件指針,格式控制字符串,輸出項(xiàng)表)

如:fprintf(fp,"%d %d",x,y);

以下語(yǔ)句 fprintf(stdout,"%d %d",x,y)

13.8fgets函數(shù)和fputs函數(shù)

1,fgets函數(shù)

fgets函數(shù)用來(lái)從文件中讀入字符串.調(diào)用形式如下:

fgets(str,n,fp);

函數(shù)功能是:從fp所指文件中讀入n-1個(gè)字符放入str為起始地址的空間內(nèi);如果在未讀滿n-1個(gè)字符時(shí),則遇到換行符或一個(gè)EOF結(jié)束本次讀操作,并已str作為函數(shù)值返回.

13.8fgets函數(shù)和fputs函數(shù)

2,fputs函數(shù)

fput函數(shù)把字符串輸出到文件中.函數(shù)調(diào)用形式如下:

fputs(str,fp);

注意:為了便于讀入,在輸出字符串時(shí),應(yīng)當(dāng)人為的加諸如"\n"這樣的字符串.

#include stdio.h

#include iostream

int main(int argc, char *argv[])

{

char arr[10] ;

char *ap = "hello!" ;

FILE *fp ;

if ((fp = fopen("hello.txt", "wt+")) == NULL)

{

printf("error!") ;

exit(1) ;

}

fputs(ap, fp) ;

rewind(fp) ; //

fgets(arr, 10, fp) ;

printf("%s\n", arr) ;

fclose(fp) ;

return 0 ;

}

13.9fread函數(shù)和fwrite函數(shù)

例如有如下結(jié)構(gòu)體:

struct st{

char num[8];

float mk[5];

}pers[30];

以下循環(huán)將把這30個(gè)元素中的數(shù)據(jù)輸出到fp所指文件中.

for(i=0;i30;i++)

fwrite(pers[i],sizeof(struct st),1,fp);

13.9fread函數(shù)和fwrite函數(shù)

以下語(yǔ)句從fp所指的文件中再次將每個(gè)學(xué)生數(shù)據(jù)逐個(gè)讀入到pers數(shù)組中.

i=0;

fread(pers[i],sizeof(struct st),1,fp);

while(!feof(fp))

{ i++;

fread(pers[i],sizeof(struct st),1,fp);

}

13.10文件定位函數(shù)

1,fseek函數(shù)

fseek函數(shù)用來(lái)移動(dòng)文件位置指針到指定的位置上,接著的讀或?qū)懖僮鲗拇宋恢瞄_(kāi)始.函數(shù)的調(diào)用形式如下:

fseek(pf,offset,origin)

pf:文件指針

offset:以字節(jié)為單位的位移量,為長(zhǎng)整形.

origin:是起始點(diǎn),用來(lái)指定位移量是以哪個(gè)位置為基準(zhǔn)的.

1,fseek函數(shù)

位移量的表示方法

標(biāo)識(shí)符 數(shù)字 代表的起始點(diǎn)

SEEK_SET 0 文件開(kāi)始

SEEK_END 2 文件末尾

SEEK_CUR 1 文件當(dāng)前位置

假設(shè)pf已指向一個(gè)二進(jìn)制文件,則;

fseek(pf,30L,SEEK_SET)

fseek(pf,-10L*sizeof(int),SEEK_END)

對(duì)于文本文件,位移量必須是0;如:

fseek(pf,0L,SEEK_SET)

fseek(pf,0L,SEEK_END)

2. ftell函數(shù)

ftell函數(shù)用以獲得文件當(dāng)前位置指針的位置,函數(shù)給出當(dāng)前位置指針相對(duì)于文件開(kāi)頭的字節(jié)數(shù).如;

long t;

t=ftell(pf);

當(dāng)函數(shù)調(diào)用出錯(cuò)時(shí),函數(shù)返回-1L.

我們可以通過(guò)以下方式來(lái)測(cè)試一個(gè)文件的長(zhǎng)度:

fseek(fp,0L,SEEK_END);

t=ftell(fp);

3.rewind函數(shù)

調(diào)用形式為:

rewind(pf);

函數(shù)沒(méi)有返回值.函數(shù)的功能是使文件的位置指針回到文件的開(kāi)頭.

13.10文件應(yīng)用

在磁盤(pán)上的test.txt文件中放有10個(gè)不小于2的正整數(shù),用函數(shù)調(diào)用方式編寫(xiě)程序.要求實(shí)現(xiàn):

1,在被調(diào)函數(shù)prime中,判斷和統(tǒng)計(jì)10個(gè)整數(shù)中的素?cái)?shù)以及個(gè)數(shù).

2,在主函數(shù)中將全部素?cái)?shù)追加到磁盤(pán)文件test.txt的尾部,同時(shí)輸出到屏幕上.

#include

#include

Int prime(int a[],int n)

{

int I,j,k=0,flag=0;

for(i=0;i { for(j=2;j if(a[i]%j==0)

{ flag=0; break;}

else flag=1;

if(flag)

{a[k]=a[i];k++;}

}

return k;

}

void main(){

int n,I,a[10];

FILE *fp;

fp=fopen("test1-2.txt","r+");

for(n=0;n10;n++)

fscanf(fp,"%d",a[n]);

n=prime(a,n);

fseek(fp,o,2);

for(i=0;i {printf("%3d",a[i]);

fprintf(fp,"%3d",a[i]);

}

fclose(fp);

如何用c語(yǔ)言從txt文件中讀取數(shù)據(jù)

用C語(yǔ)言從txt文件中讀取數(shù)據(jù),可以使用C標(biāo)準(zhǔn)庫(kù)文件自帶的文件接口函數(shù)進(jìn)行操作。

一、打開(kāi)文件:

FILE

*fopen(const

char

*filename,

const

char

*mode);

因?yàn)閠xt文件為文本文件,

所以打開(kāi)時(shí)選擇的mode應(yīng)為"r"或者"rt"。

二、讀取文件:

讀取文件應(yīng)根據(jù)文件內(nèi)容的格式,以及程序要求,選擇讀取文件的函數(shù)。可以使用一種,也可以幾種混用。

常用的文件讀取函數(shù)如下:

1、fgetc,

從文件中讀取一個(gè)字節(jié)并返回。

適用于逐個(gè)字節(jié)讀取。

2、

fgets,

從文件中讀取一行。適用于整行讀取。

3、fscanf,

格式化讀取文件,

在已經(jīng)清楚文件存儲(chǔ)格式下,可以直接用fscanf把文件數(shù)據(jù)讀取到對(duì)應(yīng)類型的變量中。

4、fread,

整塊讀取文件,

對(duì)于txt文件比較少用。

三、關(guān)閉文件:

讀取結(jié)束后,應(yīng)調(diào)用fclose函數(shù)關(guān)閉文件。

C語(yǔ)言如何讀取文件?

文件流指針應(yīng)打文件,要同操作兩文件,所要用兩文件流指針

,像要同操作兩箱.

程序理解:

兩箱,fp1,fp2;

打箱fp1,fp2,拿1024東西看,同放第二箱fp2,至箱東西完全拿,關(guān)閉兩箱.

例都差,看看stdlibf函數(shù),C文件操作:

FILL

*pf;

//聲明指針,指針數(shù)組

FILE

pf[2]

FILE

**pf;

pf

=fopen();

fread()

or

fwrite()

...

...

//操作文件

fclose(pf)

//關(guān)閉文件

c語(yǔ)言中進(jìn)行文件讀寫(xiě)的函數(shù)是?

C語(yǔ)言對(duì)文件進(jìn)行讀取之前需要先打開(kāi)文件,然后再進(jìn)行讀寫(xiě),讀寫(xiě)完之后關(guān)閉文件。

可以使用兩組函數(shù)實(shí)現(xiàn):

一、C語(yǔ)言庫(kù)函數(shù)

打開(kāi)文件:fopen

讀寫(xiě)(一般對(duì)應(yīng)成對(duì)使用):

fgetc---fputc fgets---fputs fread---fwrite

關(guān)閉文件:fclose

二、Linux系統(tǒng)函數(shù)

打開(kāi)文件:open

讀寫(xiě)(一般對(duì)應(yīng)成對(duì)使用):read---write

關(guān)閉文件:close

c語(yǔ)言如何讀取文件并輸出

1、C語(yǔ)言標(biāo)準(zhǔn)庫(kù)提供了一系列文件操作函數(shù)。文件操作函數(shù)一般以f+單詞的形式來(lái)命名(f是file的簡(jiǎn)寫(xiě)),其聲明位于stdio.h頭文件當(dāng)中。例如:fopen、fclose函數(shù)用于文件打開(kāi)與關(guān)閉;fscanf、fgets函數(shù)用于文件讀取;fprintf、fputs函數(shù)用于文件寫(xiě)入;ftell、fseek函數(shù)用于文件操作位置的獲取與設(shè)置。

2、例程:

#includestdio.h

int a;

char b,c[100];

int main(){

FILE * fp1 = fopen("input.txt", "r");//打開(kāi)輸入文件

FILE * fp2 = fopen("output.txt", "w");//打開(kāi)輸出文件

if (fp1==NULL || fp2==NULL) {//若打開(kāi)文件失敗則退出

puts("不能打開(kāi)文件!");

rturn 0;

}

fscanf(fp1,"%d",a);//從輸入文件讀取一個(gè)整數(shù)

b=fgetc(fp1);//從輸入文件讀取一個(gè)字符

fgets(c,100,fp1);//從輸入文件讀取一行字符串

printf("%ld",ftell(fp1));//輸出fp1指針當(dāng)前位置相對(duì)于文件首的偏移字節(jié)數(shù)

fputs(c,fp2);//向輸出文件寫(xiě)入一行字符串

fputc(b,fp2);//向輸出文件寫(xiě)入一個(gè)字符

fprintf(fp2,"%d",a);//向輸出文件寫(xiě)入一個(gè)整數(shù)

fclose(fp1);//關(guān)閉輸入文件

fclose(fp2);//關(guān)閉輸出文件,相當(dāng)于保存

return 0;

}

文章題目:文件讀取c語(yǔ)言函數(shù),C語(yǔ)言 讀取文件
分享路徑:http://vcdvsql.cn/article26/hspdjg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供標(biāo)簽優(yōu)化外貿(mào)建站App設(shè)計(jì)軟件開(kāi)發(fā)商城網(wǎng)站定制開(kāi)發(fā)

廣告

聲明:本網(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)

商城網(wǎng)站建設(shè)