版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 全媒体运营试卷及答案
- 参加年新录用公务员初任培训感悟
- 学校公用经费支出审批制度
- 特殊教育自闭症儿童干预题库及详解
- 电机与电气控制技术 第2版 教案11:电动机星形-三角形减压起动控制电路安装
- 2025-2026学年四川成都树德中学高一下学期4月测试政治试题含答案
- 康复科物理治疗题库及答案
- 2024-2025学年江西上饶弋横铅联考高一下学期5月考历史试题含答案
- 2025年AI驱动的产品设计售后服务创新
- 21《小毛虫》课件(内嵌视频)2025-2026学年语文二年级下册统编版
- 技术文件动态管理办法
- 智慧工地施工方案及技术措施
- 学校教师论坛活动方案
- 艾滋病患者的心理与护理
- 法院机关灶管理制度
- 毕业设计(论文)-液压挖掘机驾驶室方案设计
- 《工程水文学》习题册全解1
- 北京市海淀区2024-2025学年七年级下学期期中地理试题(解析版)
- 中国艾滋病诊疗指南(2024版)解读课件
- 天元公学模拟试题及答案
- 2025年江苏扬州市扬子工程质量检测有限公司招聘笔试参考题库含答案解析
评论
0/150
提交评论