stdio文件函数详解教学研究_第1页
stdio文件函数详解教学研究_第2页
stdio文件函数详解教学研究_第3页
stdio文件函数详解教学研究_第4页
stdio文件函数详解教学研究_第5页
已阅读5页,还剩21页未读 继续免费阅读

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1/1stdio文件函数详解-教学研究

stdio文件常用函数

stdio.h

@函数名称:fopen

函数原型:FILE*fopen(char*filename,char*mode);

函数功能:以mode指定的方式打开名为filename的文件

函数返回:胜利,返回一个文件指针(文件信息区的起始地址),否则返回0

参数说明:filename-文件名称,mode-打开模式:

r只读方式打开一个文本文件

rb只读方式打开一个二进制文件

w只写方式打开一个文本文件

wb只写方式打开一个二进制文件

a追加方式打开一个文本文件

ab追加方式打开一个二进制文件

r+可读可写方式打开一个文本文件

rb+可读可写方式打开一个二进制文件

w+可读可写方式创建一个文本文件

wb+可读可写方式生成一个二进制文件

a+可读可写追加方式打开一个文本文件

ab+可读可写方式追加一个二进制文件

所属文件:stdio.h

#includestdlib.h

#includestdio.h

#includedir.h

intmain

stdio文件常用函数

{

char*s;

chardrive[MAXDRIVE];

chardir[MAXDIR];

charfile[MAXFILE];

charext[MAXEXT];

intflags;

s=getenv(COMSPEC);

flags=fnsplit(s,drive,dir,file,ext);

printf(Commandprocessorinfo:);

if(flagsDRIVE)

printf(\tdrive:%s,drive);

if(flagsDIRECTORY)

printf(\tdirectory:%s,dir);

if(flagsFILENAME)

printf(\tfile:%s,file);

if(flagsEXTENSION)

printf(\textension:%s,ext);

return0;

}

@函数名称:fclose

函数原型:intfclose(FILE*fp);

函数功能:关闭fp所指的文件,释放文件缓冲区

stdio文件常用函数

函数返回:0-无错,否则非零

参数说明:

所属文件:stdio.h

#includestring.h

#includestdio.h

intmain

{

FILE*fp;

charbuf[11]=0123456789;

fp=fopen(test.txt,w);

fwrite(buf,strlen(buf),1,fp);

fclose(fp);

return0;

}

@函数名称:fflush

函数原型:intfflush(FILE*stream)

函数功能:清除文件缓冲区,文件以写方式打开时将缓冲区内容写入文件

函数返回:0-操作胜利,非0-操作失败

参数说明:stream-文件指针

所属文件:stdio.h

#includestring.h

stdio文件常用函数

#includestdio.h

#includeconio.h

#includeio.h

voidflush(FILE*stream);

intmain

{

FILE*stream;

charmsg=Thisisatest;

stream=fopen(DUMMY.FIL,w);

fwrite(msg,strlen(msg),1,stream);

clrscr;

printf(PressanykeytoflushDUMMY.FIL:);

getch;

flush(stream);

printf(Filewasflushed,Pressanykeytoquit:);

getch;

return0;

}

voidflush(FILE*stream)

{

intduphandle;

fflush(stream);

duphandle=dup(fileno(stream));

close(duphandle);

}

stdio文件常用函数

@函数名称:ferror

函数原型:intferror(FILE*stream)

函数功能:检测文件操作是否有错误

函数返回:非0-有错误,0-无错误

参数说明:stream-文件指针

所属文件:stdio.h

#includestdio.h

intmain

{

FILE*stream;

stream=fopen(DUMMY.dat,w);

(void)getc(stream);

if(ferror(stream))

{

printf(ErrorreadingfromDUMMY.dat)

clearerr(stream);

}

fclose(stream);

return0;

}

stdio文件常用函数

@函数名称:fileno

函数原型:intfileno(FILE*fp)

函数功能:得到与fp等价的文件句柄号

函数返回:文件句柄号

参数说明:fp-由fopen函数打开的文件指针

所属文件:stdio.h

#includestdio.h

intmain

{

FILE*stream;

stream=fopen(file,r);

printf(Filenumberis%d\n,fileno(stream));

fclose(stream);

return0;

}

@函数名称:freopen

函数原型:FILE*freopen(char*fname,char*mode,FILE*fp)

函数功能:将一个已打开的fp和一个新的文件名相连接

函数返回:fp值

参数说明:fp-已打开的文件指针

stdio文件常用函数

fname-新的文件名称

mode-同函数fopen中的定义

所属文件:stdio.h

#includestdio.h

intmain

{

if(freopen(OUTPUT.FIL,w,stdout)==NULL)

fprintf(stderr,errorredirectingstdout);

printf(Thiswillgointoafile.);

fclose(stdout);

return0;

}

@函数名称:clearerr

函数原型:voidclearerr(FILE*fp);

函数功能:清除文件指针错误指示器,将文件出错标志清零

函数返回:

参数说明:fp-文件的流指针

所属文件:stdio.h

#includegraphics.h

#includestdlib.h

#includestdio.h

stdio文件常用函数

#includeconio.h

intmain

{

intgdriver=DETECT,gmode,errorcode;

intmidx,midy;

initgraph(gdriver,gmode,);

errorcode=graphresult;

if(errorcode!=grOk)

{

printf(Graphicserror:%s,grapherrormsg(errorcode));

printf(Pressanykeytohalt:);

getch;

exit(1);

}

midx=getmaxx/2;

midy=getmaxy/2;

setcolor(getmaxcolor);

settextjustify(CENTER_TEXT,CENTER_TEXT);

outtextxy(midx,midy,pressanykeytoclearthescreen:);

getch;

cleardevice;

outtextxy(midx,midy,pressanykeytoquit:);

getch;

closegraph;

return0;

stdio文件常用函数

}

@函数名称:fgetc

函数原型:intfgetc(FILE*fp);

函数功能:从fp所指定的文件中取得下一个字符

函数返回:返回所得到的字符.若读入出错,返回EOF

参数说明:fp-文件指针

所属文件:stdio.h

#includestring.h

#includestdio.h

#includeconio.h

intmain

{

FILE*stream;

charstring=Thisisatest;

charch;

stream=fopen(test.txt,w+);

fwrite(string,strlen(string),1,stream);

fseek(stream,0,SEEK_SET);

do

{

ch=fgetc(stream);

putch(ch);

stdio文件常用函数

}

while(ch!=EOF);

fclose(stream);

return0;

}

@函数名称:fgetchar

函数原型:intfgetchar(void)

函数功能:等价于fgetc(stdin),也等价于getchar,但仅作为函数实现

函数返回:返回读出的字符,如文件已到结尾,返回值为EOF

参数说明:fp-文件指针

所属文件:stdio.h

#includestdio.h

intmain

{

FILE*fp;

intc;

fp=freopen(file,r,stdin);

while((c=getchar)!=EOF)

putchar(c);

fclose(fp);

return0;

}

stdio文件常用函数

@函数名称:fputchar

函数原型:intfputchar(intch)

函数功能:在标准输出流(即屏幕上)的当前位置写入一个字符

函数返回:操作正确时返回写入的字符,错误返回EOF

参数说明:ch-要写入的字符(舍去高位字节)

所属文件:stdio.h

#includestdio.h

intmain

{

charmsg=Thisisatest;

inti=0;

while(msg[i])

{

fputchar(msg[i]);

i++;

}

return0;

}

@函数名称:fgets

函数原型:charfgets(char*buf,intn,FILE*fp);

stdio文件常用函数

函数功能:从fp指向的文件中读取一个长度为(n-1)的字符串,存入起始地址为buf的空间函数返回:返回地址buf,若遇文件结束或出错,返回NULL

函数说明:buf-存放读入的字符数组指针,n-最大允许的读入字符数,fp-文件指针所属文件:stdio.h

#includestring.h

#includestdio.h

intmain

{

FILE*stream;

charstring=Thisisatest;

charmsg[20];

stream=fopen(test.txt,w+);

fwrite(string,strlen(string),1,stream);

fseek(stream,0,SEEK_SET);

fgets(msg,strlen(string)+1,stream);

printf(%s,msg);

fclose(stream);

return0;

}

@函数名称:feof

函数原型:intfeof(FILE*fp);

函数功能:检查文件是否结束.

stdio文件常用函数

函数返回:遇文件结束符返回非零值,否则返回0

参数说明:fp-文件指针

所属文件:stdio.h

#includestdio.h

intmain

{

FILE*stream;

stream=fopen(test.txt,r);

fgetc(stream);

if(feof(stream))

printf(Wehavereachedend-of-file);

fclose(stream);

return0;

}

函数名称:fputc

函数原型:intfputc(charch,FILE*fp);

函数功能:将字符ch输出到fp指向的文件中

函数返回:胜利,则返回该字符;否则返回非0

参数说明:fp-文件指针,ch-要写入的字符(舍去高位字节)

所属文件:stdio.h

#includestdio.h

stdio文件常用函数

intmain

{

charmsg=Helloworld;

inti=0;

while(msg[i])

{

fputc(msg[i],stdout);

i++;

}

return0;

}

@函数名称:fputs

函数原型:intfputs(char*str,FILE*fp);

函数功能:将str指向的字符串输出到fp指向的文件中

函数返回:胜利,则返回0;否则返回非0

参数说明:

所属文件:stdio.h

#includestdio.h

intmain

{

fputs(Helloworld,stdout);

return0;

stdio文件常用函数

}

@函数名称:fread

函数原型:intfread(char*pt,unsignedsize,unsignedn,FILE*fp);

函数功能:从fp所指定的文件中读取长度为size的n个数据项,存到pt所指向的内存区函数返回:返回所读的数据项个数,如遇文件结束或出错返回0

参数说明:pt-存放读入数据的指针,size-每个数据单位的字节数,n-读入的数据单位个数所属文件:stdio.h

#includestring.h

#includestdio.h

intmain

{

FILE*stream;

charmsg=thisisatest;

charbuf[20];

if((stream=fopen(test.txt,w+))==NULL)

{

fprintf(stderr,Cannotopenoutputfile.);

return1;

}

fwrite(msg,strlen(msg)+1,1,stream);

fseek(stream,SEEK_SET,0);

fread(buf,strlen(msg)+1,1,stream);

stdio文件常用函数

printf(%s,buf);

fclose(stream);

return0;

}

@函数名称:fwrite

函数原型:intfwrite(char*ptr,unsignedsize,unsignedn,FILE*fp);

函数功能:把ptr所指向的n*size个字节输出到fp所指向的文件中.

函数返回:写到fp文件中的数据项个数

参数说明:ptr-存放要写入的数据,size-每个数据单位的字节数,n-读入的数据单位个数所属文件:stdio.h

#includestdio.h

structmystruct{

inti;

charch;

};

intmain

{

FILE*stream;

structmystructs;

if((stream=fopen(TEST.dat,wb))==NULL)

{

fprintf(stderr,Cannotopenoutputfile.);

stdio文件常用函数

return1;

}

s.i=0;

s.ch='A';

fwrite(s,sizeof(s),1,stream);

fclose(stream);

return0;

}

@函数名称:fprintf

函数原型:intfprintf(FILE*fp,char*format,args,...);

函数功能:把args的值以format指定的格式输出到fp所指定的流式文件中

函数返回:实际输出的字符数

参数说明:fp-目标文件,format-格式符

所属文件:stdio.h

#includestdio.h

intmain

{

FILE*in,*out;

if((in=fopen(AUTOEXEC.BAT,rt))==NULL)

{

fprintf(stderr,Cannotopeninputfile.);

return1;

stdio文件常用函数

}

if((out=fopen(AUTOEXEC.BAK,wt))==NULL)

{

fprintf(stderr,Cannotopenoutputfile.);

return1;

}

while(!feof(in))

fputc(fgetc(in),out);

fclose(in);

fclose(out);

return0;

}

@函数名称:fscanf

函数原型:intfscanf(FILE*fp,charformat,args,...);

函数功能:从fp所指定的文件中按format给定的格式将数据输送到args所指向的内存单元

函数返回:已输入的数据个数

参数说明:

所属文件:stdio.h

#includestdlib.h

#includestdio.h

intmain

stdio文件常用函数

{

inti;

printf(Inputaninteger:);

if(fscanf(stdin,%d,i))

printf(Theintegerreadwas:%i,i);

else

{

fprintf(stderr,Errorreadinganintegerfromstdin.);

exit(1);

}

return0;

}

@函数名称:scanf

函数原型:intscanf(char*format,args,...);

函数功能:从标准输入设备按format指向的格式字符串规定的格式,输入数据给agrs所指向的单元

函数返回:读入并赋给args的数据个数.遇文件结束返回EOF,出错返回0

参数说明:args-指针

所属文件:stdio.h

intmain

{

inta

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论