stdio.h 头文件提供的常用函数解析
@函数名称:    fseek
函数原型:    int fseek(FILE * fp,long offset,int base);
函数功能:    将fp所指文件的位置指针移到以base所指位置为基准,以offset为位移量的位置
函数返回:    返回当前位置,否则返回-1
参数说明:    fp-文件指针
offset-相对于origin规定的偏移位置量
origin-指针移动的起始位置,可设置为以下三种情况:
SEEK_SET 文件开始位置 0
SEEK_CUR 文件当前位置 1
SEEK_END 文件结束位置 2
所属文件:    <stdio.h>
#include <stdio.h>
long filesize(FILE *stream);
int main()
{
FILE *stream;
stream=fopen("MYFILE.TXT","w+");
fprintf(stream,"This is a test");
printf("Filesize of MYFILE.TXT is %ld bytes",filesize(stream));
fclose(stream);
return 0;
}
long filesize(FILE *stream)
{
long curpos,length;
curpos=ftell(stream);
fseek(stream,0L,SEEK_END);
length=ftell(stream);
fseek(stream,curpos,SEEK_SET);
return length;
}
@函数名称:    ftell
函数原型:    long ftell(FILE * fp);
函数功能:    得到文件位置指示器的数值
函数返回:    fp指向的文件中的读写位置
参数说明:
所属文件:    <stdio.h>
#include <stdio.h>
int main()
{
FILE *stream;
stream=fopen("MYFILE.TXT","w+");
fprintf(stream,"This is a test");
printf("The file pointer is at byte %ld",ftell(stream));
fclose(stream);
return 0;
}
@函数名称:    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>
#include <stdlib.h>
#include <stdio.h>
#include <dir.h>
int main()
{
char *s;
char drive[MAXDRIVE];
char dir[MAXDIR];
char file[MAXFILE];
char ext[MAXEXT];
int flags;
s=getenv("COMSPEC");
flags=fnsplit(s,drive,dir,file,ext);
printf("Command processor info:");
if(flags&DRIVE)
printf("\tdrive: %s",drive);
if(flags&DIRECTORY)
printf("\tdirectory: %s",dir);
if(flags&FILENAME)
printf("\tfile: %s",file);
if(flags&EXTENSION)
printf("\textension: %s",ext);
return 0;
}
@函数名称:    fclose
函数原型:    int fclose(FILE * fp);
函数功能:    关闭fp所指的文件,释放文件缓冲区
函数返回:    0-无错,否则非零
参数说明:
所属文件:    <stdio.h>
#include <string.h>
#include <stdio.h>
int main()
{
FILE *fp;
char buf[11]="0123456789";
fp=fopen("","w");
fwrite(&buf,strlen(buf),1,fp);
fclose(fp);
return 0;
}
@函数名称:    fflush
函数原型:    int fflush(FILE *stream)
函数功能:    清除文件缓冲区,文件以写方式打开时将缓冲区内容写入文件
函数返回:    0-操作成功,非0-操作失败
参数说明:    stream-文件指针
所属文件:    <stdio.h>
#include <string.h>
#include <stdio.h>
#include <conio.h>
#include <io.h>
void flush(FILE *stream);
int main()
{
FILE *stream;
char msg[]="This is a test";
stream=fopen("DUMMY.FIL","w");
fwrite(msg,strlen(msg),1,stream);
clrscr();
printf("Press any key to flush DUMMY.FIL:");
getch();
flush(stream);
printf("File was flushed,Press any key to quit:");
getch();
return 0;
}
void flush(FILE *stream)
{
int duphandle;
fflush(stream);
duphandle=dup(fileno(stream));
close(duphandle);
}
@函数名称:    ferror
函数原型:    int ferror(FILE *stream)
函数功能:    检测文件操作是否有错误
函数返回:    非0-有错误,0-无错误
参数说明:    stream-文件指针
所属文件:    <stdio.h>
#include <stdio.h>
int main()
{
FILE *stream;
stream=fopen("DUMMY.dat","w");
(void) getc(stream);
if (ferror(stream))
{
printf("Error reading from DUMMY.dat")
clearerr(stream);
}
fclose(stream);
return 0;
}
@函数名称:    fileno
函数原型:    int fileno(FILE *fp)
函数功能:    得到与fp等价的文件句柄号
函数返回:    文件句柄号
参数说明:    fp-由fopen()函数打开的文件指针
所属文件:    <stdio.h>
#include <stdio.h>
int main()
{
FILE *stream;
stream=fopen("file","r");
printf("File number is %d\n",fileno(stream));
fclose(stream);
return 0;
}
@函数名称:    freopen
函数原型:    FILE *freopen(char *fname,char *mode,FILE *fp)
函数功能:    将一个已打开的fp和一个新的文件名相连接
函数返回:    fp值
参数说明:    fp-已打开的文件指针
fname-新的文件名称
mode-同函数fopen()中的定义
所属文件:    <stdio.h>
#include <stdio.h>
int main()
{
if (freopen("OUTPUT.FIL","w",stdout)==NULL)
fprintf(stderr,"error redirecting stdout");
printf("This will go into a file.");
fclose(stdout);
return 0;
}
@函数名称:    clearerr
函数原型:    void clearerr(FILE * fp);
函数功能:    清除文件指针错误指示器,将文件出错标志清零
函数返回:
参数说明:    fp-文件的流指针
所属文件:    <stdio.h>
#include <graphics.h>
#include <stdlib.h>
#include <stdio.h>
#include <conio.h>
int main()
{
int gdriver=DETECT,gmode,errorcode;
int midx,midy;
initgraph(&gdriver,&gmode,);
errorcode=graphresult();
if (errorcode!=grOk)
{
printf("Graphics error: %s",grapherrormsg(errorcode));
printf("Press any key to halt:");
getch();
exit(1);
}
midx=getmaxx()/2;
midy=getmaxy()/2;
setcolor(getmaxcolor());
settextjustify(CENTER_TEXT,CENTER_TEXT);
outtextxy(midx,midy,"press any key to clear the screen:");
getch();
cleardevice();
outtextxy(midx,midy,"press any key to quit:");
getch();
closegraph();
return 0;
}
@函数名称:    fgetc
函数原型:    int fgetc(FILE * fp);
函数功能:    从fp所指定的文件中取得下一个字符
函数返回:    返回所得到的字符.若读入出错,返回EOF
参数说明:    fp-文件指针
所属文件:    <stdio.h>
#include <string.h>
#include <stdio.h>
#include <conio.h>
int main()
{
FILE *stream;
char string[]="This is a test";
char ch;
stream=fopen("","w+");
fwrite(string,strlen(string),1,stream);
fseek(stream,0,SEEK_SET);
do
{
ch=fgetc(stream);
putch(ch);
}
while (ch!=EOF);
fclose(stream);
return 0;
}
@函数名称:    fgetchar
函数原型:    int fgetchar(void)
函数功能:    等价于fgetc(stdin),也等价于getchar,但仅作为函数实现
函数返回:    返回读出的字符,如文件已到结尾,返回值为EOF
参数说明:    fp-文件指针
所属文件:    <stdio.h>
#include <stdio.h>
int main()
{
FILE *fp;
int c;
fp = freopen( "file", "r", stdin );
while( (c = getchar()) != EOF )
putchar(c);
fclose( fp );
return 0;
}
@函数名称:    fputchar
函数原型:    int fputchar(int ch)
函数功能:    在标准输出流(即屏幕上)的当前位置写入一个字符
函数返回:    操作正确时返回写入的字符,错误返回EOF
参数说明:    ch-要写入的字符(舍去高位字节)
所属文件:    <stdio.h>
#include <stdio.h>
int main()
{
char msg[] ="This is a test";
int i=0;
while (msg[i])
{
fputchar(msg[i]);
i++;
}
return 0;
}
@函数名称:    fgets
函数原型:    char fgets(char * buf,int n,FILE * fp);
函数功能:    从fp指向的文件中读取一个长度为(n-1)的字符串,存入起始地址为buf的空间
函数返回:    返回地址buf,若遇文件结束或出错,返回NULL
函数说明:    buf-存放读入的字符数组指针,n-最大允许的读入字符数,fp-文件指针
所属文件:    <stdio.h>
#include <string.h>
#include <stdio.h>
int main()
{
FILE *stream;
char string[]="This is a test";
char msg[20];
stream=fopen("","w+");
fwrite(string,strlen(string),1,stream);
fseek(stream,0,SEEK_SET);
fgets(msg,strlen(string)+1,stream);
printf("%s",msg);
fclose(stream);
return 0;
}
@函数名称:    feof
函数原型:    int feof(FILE * fp);
函数功能:    检查文件是否结束.
函数返回:    遇文件结束符返回非零值,否则返回0
参数说明:    fp-文件指针
所属文件:    <stdio.h>
#include <stdio.h>
int main()
{
FILE *stream;
stream=fopen("","r");
fgetc(stream);
if (feof(stream))
printf("We have reached end-of-file");
fclose(stream);
return 0;
}
函数名称:    fputc
函数原型:    int fputc(char ch,FILE *fp);
函数功能:    将字符ch输出到fp指向的文件中
函数返回:    成功,则返回该字符;否则返回非0
参数说明:    fp-文件指针,ch-要写入的字符(舍去高位字节)
所属文件:    <stdio.h>
#include <stdio.h>
int main()
{
char msg[]="Hello world";
int i=0;
while (msg[i])
{
fputc(msg[i],stdout);
i++;
}
return 0;
}
@函数名称:    fputs
函数原型:    int fputs(char * str,FILE *fp);
函数功能:    将str指向的字符串输出到fp指向的文件中
函数返回:    成功,则返回0;否则返回非0
参数说明:
所属文件:    <stdio.h>
#include <stdio.h>
int main()
{
fputs("Hello world",stdout);
return 0;
}
@函数名称:    fread
函数原型:    int fread(char * pt,unsigned size,unsigned n,FILE * fp);
函数功能:    从fp所指定的文件中读取长度为size的n个数据项,存到pt所指向的内存区
函数返回:    返回所读的数据项个数,如遇文件结束或出错返回0
参数说明:    pt-存放读入数据的指针,size-每个数据单位的字节数,n-读入的数据单位个数
所属文件:    <stdio.h>
#include <string.h>
#include <stdio.h>
int main()
{
FILE *stream;
char msg[]="this is a test";
char buf[20];
if ((stream=fopen("","w+"))==NULL)
{
fprintf(stderr,"Cannot open output file.");
return 1;
}
fwrite(msg,strlen(msg)+1,1,stream);
fseek(stream,SEEK_SET,0);
fread(buf,strlen(msg)+1,1,stream);
printf("%s",buf);
fclose(stream);
return 0;
}
@函数名称:    fwrite
函数原型:    int fwrite(char *ptr,unsigned size,unsigned n,FILE *fp);
函数功能:    把ptr所指向的n*size个字节输出到fp所指向的文件中.
函数返回:    写到fp文件中的数据项个数
参数说明: 
ptr-存放要写入的数据,size-每个数据单位的字节数,n-读入的数据单位个数
所属文件:    <stdio.h>
#include <stdio.h>
struct mystruct{
int i;
char ch;
};
int main()
{
FILE *stream;
struct mystruct s;
if ((stream=fopen("TEST.dat","wb"))==NULL)
{
fprintf(stderr,"Cannot open output file.");fprintf作用
return 1;
}
s.i=0;
s.ch='A';
fwrite(&s,sizeof(s),1,stream);
fclose(stream);
return 0;
}
@函数名称:    fprintf
函数原型:    int fprintf(FILE * fp,char * format,args,...);
函数功能:    把args的值以format指定的格式输出到fp所指定的流式文件中
函数返回:    实际输出的字符数
参数说明:    fp-目标文件,format-格式符
所属文件:    <stdio.h>
#include <stdio.h>
int main()
{
FILE *in,*out;
if ((in=fopen("AUTOEXEC.BAT","rt"))==NULL)
{
fprintf(stderr,"Cannot open input file.");
return 1;
}
if ((out=fopen("AUTOEXEC.BAK","wt"))==NULL)
{
fprintf(stderr,"Cannot open output file.");
return 1;
}
while(!feof(in))
fputc(fgetc(in),out);
fclose(in);
fclose(out);
return 0;
}
@函数名称:    fscanf
函数原型:    int fscanf(FILE * fp,char format,args,...);
函数功能:    从fp所指定的文件中按format给定的格式将数据输送到args所指向的内存单元
函数返回:    已输入的数据个数
参数说明:
所属文件:    <stdio.h>
#include <stdlib.h>
#include <stdio.h>
int main()
{
int i;
printf("Input an integer: ");
if (fscanf(stdin,"%d",&i))
printf("The integer read was: %i",i);
else
{
fprintf(stderr,"Error reading an integer from stdin.");
exit(1);
}
return 0;
}
@函数名称:    scanf
函数原型:    int scanf(char * format,args,...);
函数功能:    从标准输入设备按format指向的格式字符串规定的格式,输入数据给agrs所指向的单元
函数返回:    读入并赋给args的数据个数.遇文件结束返回EOF,出错返回0
参数说明:    args-指针
所属文件:    <stdio.h>
int main()
{
int a,b,c;
scanf("%d%d%d",&a,&b,&c);
printf("%d,%d,%d\n",a,b,c);
return 0;
}
@函数名称:    printf
函数原型:    int printf(char * format,args,...);
函数功能:    按format指向的格式字符串所规定的格式,将输出表列args的值输出到标准输出设备
函数返回:    输出字符的个数.若出错返回负数
参数说明:    format-是一个字串,或字符数组的起始地址
所属文件:    <stdio.h>
#include <stdio.h>
int main()
{
char c='a';
int i=97;
printf("%c,%d\n",c,c);
printf("%c,%d\n",i,i);
return 0;
}

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。