二、C语言文件处理[写入、读取]

详细文章内容

w 打开只写文件,若文件存在则文件长度清为0,即该文件内容会消失。若文件不存在则建立该文件。
w+ 打开可读写文件,若文件存在则文件长度清为零,即该文件内容会消失。若文件不存在则建立该文件。
wb 只写方式打开或新建一个二进制文件,只允许写数据。
wb+ 读写方式打开或建立一个二进制文件,允许读和写。
r 打开只读文件,该文件必须存在,否则报错。
r+ 打开可读写的文件,该文件必须存在,否则报错。
rb+ 读写方式打开一个二进制文件,只允许读写数据。
a 以附加的方式打开只写文件。若文件不存在,则会建立该文件,如果文件存在,写入的数据会被加到文件尾,即文件原先的内容会被保留。(EOF符保留)
a+ 以附加方式打开可读写的文件。若文件不存在,则会建立该文件,如果文件存在,写入的数据会被加到文件尾后,即文件原先的内容会被保留。 (原来的EOF符不保留)
ab+ 读写打开一个二进制文件,允许读或在文件末追加数据。

一、文件写入

打开:FILE *a; a=fopen("student.txt","w"); (需要先定义文件指针)

写入格式:fwrite(指向数组或结构体的指针,单个数组里面内容的大小,数量,文件指针)(注意返回0代表写入失败,成功返回数量

关闭:fclose(a);

注意:写入的文件都是二进制文件,直接打开看到的是乱码

#include 
int main()
{
    FILE *a;
    int *p;
    int d[]={5,4,6,99};
    p=d;
    a=fopen("student.txt","wb");
    fwrite(p,sizeof(int),4,a);
    fclose(a);
}



详细文章内容

二、文件读取

打开:FILE *a; a=fopen("student.txt","r"); (需要先定义文件指针)(注意返回0代表写入失败,成功返回地址

读取格式:fread(指向数组或结构体的指针,单个数组里面内容的大小,数量,文件指针)(注意返回0代表写入失败,成功返回数量

关闭:fclose(a);

#include 
int main()
{
    FILE *a;
    a=fopen("student.txt","rb");
    int p[5];
    fread(p,sizeof(int),4,a);
    fclose(a);
}

三、函数

1.fseek()

特别注意:当使用完之后切记让指针回到初始位置,不如其它操作及其可能会失败
用法:移动指针位置
格式:fseek(fp,20,SEEK_SET); 参数:参数1为文件指针;参数2为偏移量;参数3为从哪开始偏移SEEK_SET 文件的开头;SEEK_CUR 文件指针的当前位置;SEEK_END 文件的末尾);

2.ftell()

用法:用来获取文件的当前读写位置,返回字节数
格式:ftell(p)参数为指针

实操(获取文件字节数-获取存入了几个内容):

FILE *file,*a;
a = fopen("student.txt","rb");
fseek(a, 0, SEEK_END);// 使用完之后切记让指针回到初始位置
len = ftell(a);
fseek(file, 0, SEEK_SET);// 回到开头(很关键,不然无法fread)
len = len / sizeof(struct Student);# 获取存入了几个结构体数据
fclose(a);

详细文章内容

你可能感兴趣的:(#,C语言基础知识,c语言)