c语言对文件的操作主要分为:按字符操作,按行操作,按内存块操作

主要的函数:

fopen():

  FILE * fopen(_In_z_ const char * _Filename, _In_z_ const char * _Mode);

第一个参数是文件的绝对路径名(包含文件),第二个是文件的打开方式,Mode(方式)意义如下:


"r" 打开一个用于读取的文本文件

"w" 创建一个用于写入的文本文件

"a" 附加到一个文本文件

"rb" 打开一个用于读取的二进制文件

"wb" 创建一个用于写入的二进制文件

"ab" 附加到一个二进制文件

"r+" 打开一个用于读/写的文本文件

"w+" 创建一个用于读/写的文本文件

"a+" 打开一个用于读/写的文本文件

"rb+" 打开一个用于读/写的二进制文件

"wb+" 创建一个用于读/写的二进制文件

"ab+" 打开一个用于读/写的二进制文件

fclose():关闭文件资源

一、按字符:其实就是从文件中一个个读出字符出来

头文件:

#include#include#include

函数原型:

voidwriteFile(char*fileRealName,char*writeStr);//将一个字符串写入某个文件中

void readFile(char *fileRealName); //读取文件

实现方法:

voidreadFile(char*fileRealName){

    FILE *pf = NULL;

    pf = fopen(fileRealName,"r+");

    if(pf == NULL){

        printf("文件不存在");

        return;

    }

    while(!feof(pf)){

        printf("%c", fgetc(pf));

    }

    fclose(pf);

}

测试写入文件:

int main(){

    writeFile("c:/1.txt","fdweqfefwef");

    system("pause");

    return0;

}

运行结果:

C语言文件的基本操作!速学知识!

 

测试读取文件:

int main(){

    readFile("c:/1.txt");

    system("pause");

    return0;

}

运行结果:

C语言文件的基本操作!速学知识!

二、按行操作:

头文件跟上面一样

函数原型:

voidreadLine(constchar*fileRealName);          // 读取一行

voidwriteLine(constchar*fileRealName,constchar*writeLine);  写入一行

实现方法:


voidreadLine(constchar*fileRealName){

    FILE *pf = NULL;

    charrl[1024];

    char*p = NULL;

    pf = fopen(fileRealName,"r+");

    if(pf == NULL){

        printf("文件不存在");

        return;

    }

 

    while(!feof(pf)){

 

        p = fgets(rl,1024, pf);

        if(p == NULL)

            goto end;

        printf("%s", rl);

    }

    end :

        fclose(pf);

}

voidwriteLine(constchar*fileRealName,constchar*writeLine){

    FILE *pf = NULL;

    pf = fopen(fileRealName,"r+");

    if(pf == NULL){

        printf("文件不存在");

        return;

    }

    fputs(writeLine, pf);

    fclose(pf);

}


写入测试就不做了,跟字符操作一样

读取测试:

文本文档为:

ggg

3456

zhang

张三

李四

int main(){

    readLine("c:/1.txt");

    system("pause");

    return0;

}

运行结果:

C语言文件的基本操作!速学知识!

三、按照内存块操作:

头文件一样,全局变量:

typedefstruct Teacher{

    int id;

    charname[64];

}Teacher;

函数原型:

C语言文件的基本操作!速学知识!

实现方法:

C语言文件的基本操作!速学知识!

C语言文件的基本操作!速学知识!

测试写:

int main(){

    Teacher ts[3];

    int i;

    for(i =0; i <3; i++){

        ts[i].id =1000+ i;

        sprintf(ts[i].name, "zhangsan%d", i +1);

    }

    writeTeachers(ts, 3,"c:/2.data");

    system("pause");

    return0;

}

最终生成一个二进制文件

测试读:

int main(){

    Teacher *ts = NULL;

    intlen =0;

    len = readTeachers(&ts,"c:/2.data");

    printTeacher(ts, len);

    if(ts != NULL){

        free(ts);

        ts = NULL;

    }

    system("pause");

    return0;

}

运行结果:

C语言文件的基本操作!速学知识!

“我是一名从事了10年开发的老程序员,最近我花了一些时间整理关于C语言、C++,自己有做的材料的整合,一个完整的学习C语言、C++的路线,学习材料和工具。全球最大的C/C++爱好者就在我这里(<C语言C++编程学习14>)。这里是编程爱好者的聚集地,欢迎初学和进阶中的小伙伴。希望你也能凭自己的努力,成为下一个优秀的程序员。工作需要、感兴趣、为了入行、转行需要学习C/C++的伙伴可以跟我一起学习!”

关注我,带你遨游代码的世界!

C语言文件的基本操作!速学知识!

C语言文件的基本操作!速学知识!

C语言文件的基本操作!速学知识!

C语言文件的基本操作!速学知识!

C语言文件的基本操作!速学知识!

相关文章: