文件打开关闭函数:fopen()和fclose()
字符读写函数 :fgetc()和fputc()
字符串读写函数:fgets()和fputs()
数据块读写函数:fread()和fwrite()
格式化读写函数:fscanf()和fprinf()
随机读写文件:rewind(*fp),使文件位置标记指向文件开头;fseek(文件类型指针,位移量,起始点),如fseek(fp,100L,0)<起始点->'0'代表文件开始位置,‘1’文件当前位置,‘2’文件末尾位置>。
说明:从文件编码的方式来看,文件可分为ASCII码文件和二进制码文件两种。
ASCII文件也称为文本文件,这种文件在磁盘中存放时每个字符对应一个字节,用于存放对应的ASCII码。ASCII码文件可在屏幕上按字符显示。
二进制文件是按二进制的编码方式来存放文件的。 二进制文件虽然也可在屏幕上显示,但其内容无法读懂。C系统在处理这些文件时,并不区分类型,都看成是字符流,按字节进行处理。输入输出字符流的开始和结束只由程序控制而不受物理符号(如回车符)的控制。 因此也把这种文件称作“流式文件”。从网上搜到的代码如下:
/********************************************************************
created: 2008/11/04
created: 4:11:2008 19:58
filename: D:/firefox/Interview/read_write_file/main.c
file path: D:/firefox/Interview/read_write_file
file base: main
file ext: c
author: HaiBin Kuang
purpose: 文件的读写函数的使用,主要包括fputs(),fgets(),fputc()
,fgetc(),fread(),fwrite(),fprintf(),fscanf();等。
***************************************************************
#include
#include
int
main()
{
FILE *fp_write,*fp_read;
int i=328,j=3;
int a[3]={1,2,3},n[3]={7,8,9};
char s[50],*temp="this is good news.",m[20],ch;
/*
* 以下代码主要是对文件的写操作,主要使用函数有:fprintf(),fputs(),fputc(),
*/
if ((fp_write=fopen("hello.dat","wb"))==NULL)
{
printf("Open file failure!/n");
return 0;
}
fputs("Your score of TOEFL ",fp_write);
fputc(':',fp_write);
fprintf(fp_write,"%d/n",i);
fprintf(fp_write,"%s",temp);
fclose(fp_write);
/*
* 以下代码主要是对文件的读操作,主要使用函数有:fscanf(),fgets(),fgetc(),
*/
if ((fp_read=fopen("hello.dat","rb"))==NULL)
{
printf("Open file failure!/n");
return 0;
}
fgets(s,21,fp_read);
printf("%s",s);
fscanf(fp_read,"%d",&j);
printf("%d",j);
putchar(fgetc(fp_read));
fgets(m,19,fp_read);
puts(m);
fclose(fp_read);
/*
* 以下程序主要是fwrite(),fread()两个函数的使用
*/
if ((fp_write=fopen("1.txt","w"))==NULL)
{
printf("1:Open file failure!/n");
return 0;
}
fwrite(a,sizeof(int),3,fp_write);
fclose(fp_write);
if ((fp_read=fopen("1.txt","r"))==NULL)
{
printf("2:Open file failure!/n");
return 0;
}
for (j=0;j<3;j++)
{
printf("%d ",n[j]);
}
printf("/n");
for (j=0;j<3;j++)
{
fread(n+j,sizeof(int),1,fp_read);
printf("%d ",n[j]);
}
fclose(fp_read);
return 0;
/*
* fgetc()与putchar()的使用。打印本程序main.c
*/
if((fp_read=fopen("main.c","r"))==NULL)
{
printf("Cannot open file strike any key exit!");
getch();
return 0;
}
ch=fgetc(fp_read);
while (!feof(fp_read))
{
putchar(ch);
ch=fgetc(fp_read);
}
fclose(fp_read);
getch();
return 0;
}
阅读(212) | 评论(0) | 转发(0) |