真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

c語言讀目錄文件的函數(shù),c語言目錄操作

C語言用fscanf()函數(shù)如何讀取文件全部內容?

void read_txt(const char* Input, const char* Output){

成都創(chuàng)新互聯(lián)公司專注于企業(yè)網(wǎng)絡營銷推廣、網(wǎng)站重做改版、貢山網(wǎng)站定制設計、自適應品牌網(wǎng)站建設、H5響應式網(wǎng)站商城網(wǎng)站制作、集團公司官網(wǎng)建設、外貿(mào)營銷網(wǎng)站建設、高端網(wǎng)站制作、響應式網(wǎng)頁設計等建站業(yè)務,價格優(yōu)惠性價比高,為貢山等各大城市提供網(wǎng)站開發(fā)制作服務。

FILE *fin = fopen(Input, "rb");//以二進制讀入

FILE *fout = fopen(Output, "w");

unsigned char ch1,ch2;

while(fscanf(fin, "%c%c", ch1,ch2) != EOF){//直到文件結束

fprintf(fout, "%d%d", ch1,ch2);//以10進制輸出

}

}

int main(){

read_txt("D:/IN.txt","D:/OUT.txt");//txt文件目錄

return 0;

}

注:判斷文件結束處的語句:fscanf(fin, "%c%c", ch1,ch2)。其中兩個%c之間不能加空格,否則讀到的二進制文件會不完整,比源文件少好多個字節(jié)

在C語言中如何打開文件夾中的文件

用文件路徑操作函數(shù)找到源代碼所在的文件夾。使用文件操作函數(shù)fopen打開源文件即可。

路徑操作函數(shù) chdir。

chdir函數(shù)是C語言中的一個系統(tǒng)調用函數(shù)(同cd)功 能:更改當前工作目錄。參 數(shù):Path 必選。Path 可能包含驅動器。如果未指定驅動器,則當前驅動器上的默認目錄或文件夾。返回值:成功返回0 ,失敗返回-1

文件操作函數(shù)fopen。

函數(shù)原型:FILE?* fopen(const char * path,const char * mode);返回值:文件順利打開后,指向該流的文件指針就會被返回。如果文件打開失敗則返回NULL,并把錯誤代碼存在errno中。一般而言,打開文件后會做一些文件讀取或寫入的動作,若打開文件失敗,接下來的讀寫動作也無法順利進行,所以一般在fopen()后作錯誤判斷及處理。

c語言 讀取目錄中的文件名,并將其存入數(shù)組中

用system 調用 DOS DIR 命令就可以了:

system ( "dir sss_* /B log.txt");

這就把 前綴為sss_的文件 文件名 存入 log.txt 文件了。

一個名字一行,沒有別的東西。

你再 讀出來。

#include stdio.h

main()

{

FILE *fp;

char str[30][50]; // 假定文件數(shù)不超過30個

int i,n=0;

system("dir sss_* /B log.txt");

fp=fopen("log.txt","r");

while(1){

if ( fgets(str[n],50,fp)==NULL) break;

str[n][strlen(str[n])-1]='\0'; // 加一個字符串結束符

n++;

}

fclose(fp);

for (i=0;in;i++) printf("%s\n",str[i]);

}

請問C語言對文件的讀取有哪些函數(shù),都有什么功能?像fseek();fscanf();fread......什么的

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

13.1C語言文件

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

順序存取

直接存取

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

文本文件

二進制文件

13.2文件指針

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

FILE *指針變量名;

例如:

FILE *fp1,*fp2;

13.3打開文件

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

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

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

FILE *fp;

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

如果調用成功,fp就指向file_1,否則返回為NULL,所以為了保證文件的正確使用,要進行測試.采用如下語句:

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

{

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

exit(0);

}

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

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

2,"rb".為讀而打開二進制文件.

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

4,"wb".為寫而打開二進制文件.

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

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

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

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

8,"rb+".為讀和寫而打開二進制文件.只是在隨后的讀寫時,可以由位置函數(shù)設置讀和寫的起始位置.

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

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

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

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

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

13.4關閉文件

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

fclose(文件指針)

如:fclose(fp);

13.5調用getc(fgetc)和putc(fputc)函數(shù)進行輸入和輸出

1,調用putc(或fputc)函數(shù)輸出一個字符

調用形式為:

putc(ch,fp);

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

13.5調用getc(fgetc)和putc(fputc)函數(shù)進行輸入和輸出

例如:把從鍵盤輸入的文本按原樣輸出到名為file_1.dat文件中,用字符@作為鍵盤輸入結束標志.

#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.調用getc(或fgetc)函數(shù)輸入一個字符

調用形式為:

ch=getc(pf);

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

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

#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判斷文件結束函數(shù)feof

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

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

可執(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ù)相似,只不過輸入的對象是磁盤上文本文件中的數(shù)據(jù).調用形式為:

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

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

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

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

3.fprintf函數(shù)

fprintf函數(shù)按格式將內存中的數(shù)據(jù)轉換成對應的字符,并以ASCII代碼形式輸出到文本文件中.Fprintf函數(shù)和printf函數(shù)相似,只是將輸出的內容按格式存放到磁盤的文本文件中.調用形式如下:

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

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

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

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

1,fgets函數(shù)

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

fgets(str,n,fp);

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

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

2,fputs函數(shù)

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

fputs(str,fp);

注意:為了便于讀入,在輸出字符串時,應當人為的加諸如"\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ù)

例如有如下結構體:

struct st{

char num[8];

float mk[5];

}pers[30];

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

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

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

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

以下語句從fp所指的文件中再次將每個學生數(shù)據(jù)逐個讀入到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ù)用來移動文件位置指針到指定的位置上,接著的讀或寫操作將從此位置開始.函數(shù)的調用形式如下:

fseek(pf,offset,origin)

pf:文件指針

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

origin:是起始點,用來指定位移量是以哪個位置為基準的.

1,fseek函數(shù)

位移量的表示方法

標識符 數(shù)字 代表的起始點

SEEK_SET 0 文件開始

SEEK_END 2 文件末尾

SEEK_CUR 1 文件當前位置

假設pf已指向一個二進制文件,則;

fseek(pf,30L,SEEK_SET)

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

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

fseek(pf,0L,SEEK_SET)

fseek(pf,0L,SEEK_END)

2. ftell函數(shù)

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

long t;

t=ftell(pf);

當函數(shù)調用出錯時,函數(shù)返回-1L.

我們可以通過以下方式來測試一個文件的長度:

fseek(fp,0L,SEEK_END);

t=ftell(fp);

3.rewind函數(shù)

調用形式為:

rewind(pf);

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

13.10文件應用

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

1,在被調函數(shù)prime中,判斷和統(tǒng)計10個整數(shù)中的素數(shù)以及個數(shù).

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

#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語言如何讀取文件并輸出

1、C語言標準庫提供了一系列文件操作函數(shù)。文件操作函數(shù)一般以f+單詞的形式來命名(f是file的簡寫),其聲明位于stdio.h頭文件當中。例如:fopen、fclose函數(shù)用于文件打開與關閉;fscanf、fgets函數(shù)用于文件讀?。籪printf、fputs函數(shù)用于文件寫入;ftell、fseek函數(shù)用于文件操作位置的獲取與設置。

2、例程:

#includestdio.h

int a;

char b,c[100];

int main(){

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

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

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

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

rturn 0;

}

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

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

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

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

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

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

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

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

fclose(fp2);//關閉輸出文件,相當于保存

return 0;

}

C語言函數(shù)的目錄函數(shù)

所在函數(shù)庫為dir.h、dos.h

int chdir(char *path) 使指定的目錄path(如:C:\\WPS)變成當前的工作目錄,成

功返回0

int findfirst(char *pathname,struct ffblk *ffblk,int attrib)查找指定的文件,成功

返回0

pathname為指定的目錄名和文件名,如C:\\WPS\\TXT

ffblk為指定的保存文件信息的一個結構,定義如下: struct?ffblk????????????????????????{????????????????????????????????????char?ff_reserved[21];?/*DOS保留字*/?char?ff_attrib;???????/*文件屬性*/??int??ff_ftime;????????/*文件時間*/??int??ff_fdate;????????/*文件日期*/??long?ff_fsize;????????/*文件長度*/??char?ff_name[13];?????/*文件名*/???}??????attrib為文件屬性,由以下字符代表

┃FA_RDONLY 只讀文件┃FA_LABEL 卷標號┃

┃FA_HIDDEN 隱藏文件┃FA_DIREC 目錄 ┃

┃FA_SYSTEM 系統(tǒng)文件┃FA_ARCH 檔案 ┃

例:

struct ffblk ff;

findfirst(*.wps,ff,FA_RDONLY);

int findnext(struct ffblk *ffblk) 取匹配finddirst的文件,成功返回0

void fumerge(char *path,char *drive,char *dir,char *name,char *ext)

此函數(shù)通過盤符drive(C:、A:等),路徑dir(\TC、\BC\LIB等),

文件名name(TC、WPS等),擴展名ext(.EXE、.COM等)組成一個文件名

存與path中.

int fnsplit(char *path,char *drive,char *dir,char *name,char *ext)

此函數(shù)將文件名path分解成盤符drive(C:、A:等),路徑dir(\TC、\BC\LIB等),

文件名name(TC、WPS等),擴展名ext(.EXE、.COM等),并分別存入相應的變量中.

int getcurdir(int drive,char *direc) 此函數(shù)返回指定驅動器的當前工作目錄名稱

drive 指定的驅動器(0=當前,1=A,2=B,3=C等)

direc 保存指定驅動器當前工作路徑的變量 成功返回0

char *getcwd(char *buf,iint n) 此函數(shù)取當前工作目錄并存入buf中,直到n個字

節(jié)長為為止.錯誤返回NULL

int getdisk() 取當前正在使用的驅動器,返回一個整數(shù)(0=A,1=B,2=C等)

int setdisk(int drive) 設置要使用的驅動器drive(0=A,1=B,2=C等),

返回可使用驅動器總數(shù)

int mkdir(char *pathname) 建立一個新的目錄pathname,成功返回0

int rmdir(char *pathname) 刪除一個目錄pathname,成功返回0

char *mktemp(char *template) 構造一個當前目錄上沒有的文件名并存于template中

char *searchpath(char *pathname) 利用MSDOS找出文件filename所在路徑,

,此函數(shù)使用DOS的PATH變量,未找到文件返回NULL


分享名稱:c語言讀目錄文件的函數(shù),c語言目錄操作
網(wǎng)頁地址:http://weahome.cn/article/hdeigh.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部