C语言———文件

C语言———文件

    • C语言文件
    • 文件打开与关闭
    • 文件的读写
    • 文件的定位

C语言文件

**文件:**存储在外部介质上数据的集合,是操作系统数据管理的单位
文件分类:

  1. 按逻辑结构
  2. 按存储介质
  3. 按数据的组织形式

文件类型指针:

//文件结构体
typedef struct
{
	int _fd;
	int _cleft;
	int _mode;
	char *_next;
	char *_buff;
}FILE;

文件打开与关闭

fopen文件打开:函数原型:FILE *fopen(char *name, char *mode)
功能:打开文件
文件使用方式:

文件使用方式 含义
“r/rb" 为了输入打开一个二进制文件
“w/wb” 为了输出文本建立一个二进制文件
“a/ab” 向文件尾追加数据
“r+/rb+” 为了读写打开一个文件
“w+/wb+” 为读写建立一个文件
“a+/ab+” 为读写打开或者建立一个文件,并且末尾追加

例子

FILE *fp;
fp=fopen("c:\\fengyi\\bkc\\test.dat","r");
FILE *fp;
char *filename="c:\\fengyi\\bkc\\test.dat";
fp=fopen(filename,"r");

没有成功打开文件返回NULL

fclose文件关闭
函数原型
int fclose(FILE *fp)

文件的读写

fputc
函数原型:int fputc(int c,FILE *fp)
正常返回c,出错为EOF
fgetc
函数原型:int fgetc(FILE *fp)

例子,键入字符,知道"#"为止

#include 


int main()
{
    FILE *fp;
    char ch;
    char *filename="e:\\test\\intout.text";
    if((fp=fopen(filename,"a"))==NULL)
    {
        printf("can not open file\n");
        return 0;

    }
    printf("Please input string");
    ch=getchar();
    while (ch!='#')
    {
        fputc(ch,fp);
        putchar(ch);
        ch=getchar();
    }
    fclose(fp);
     if((fp=fopen(filename,"r"))==NULL)
    {
        printf("can not open file\n");
        return 0;

    }
    while (ch=fgetc(fp)!=EOF)
    {
        putchar(ch);

    }
    fclose(fp);
    return 0;

}

feof函数
判断文件是否结束,结束返回非0,未结束返回0;

数据块I/O,fread与fwrite
说明:
1.buffer:指向要输入/输出数据块的首地址的指针
2.size:每个要读/写的数据块的大小(字节数)
3.count:要读/写的数据块的个数
4.fp: 要读/写的文件指针
5.fread与fwrite一般用于二进制文件的输入与输出

size_t fread(void *buffer,size_t size,size_t count,FILE *fp)
size_t fwrite(void *buffer,size_t size,size_t count,FILE *fp)

格式化I/O:fprintf与fscanf:
文件的输入和输出
例子

fprintf(fp,"%d,%6d,%6.2f",i,t);
fscanf(fp,"%d,%6d,%6.2f",&i,&t)

fgets和fputs
函数原型
char *fgets(char *s,int n,FILE *fp)
//这里面的n其实是读了n-1个字符,最后末尾加上‘\0’
int fputs(char *s,FILE *fp)

文件的定位

remind函数
void remind(FILE *fp)
功能:重置位置指针到文件开头
fseek函数
int fseek(FILE *fp,long offset,int whence)
offset:位移量(以开始为起点,移动的字节数)
数字>0的话向右移动,反之向左移动
whence:0时,文件开始位置
1时,文件当前位置
2时,文件末尾位置
ftell函数
long ftell(FILE *fp)
功能:返回位置指针的当前位置

你可能感兴趣的:(c语言,指针,c语言,文件,基础,大学本科)