文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

C语言怎么实现对文件进行操作

2023-07-05 23:19

关注

这篇“C语言怎么实现对文件进行操作”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“C语言怎么实现对文件进行操作”文章吧。

文件指针

向文件里输出或读取数据需要使用文件指针的形式,每个文件指针可以用来打开一个文件,这个文件指针指向文件的文件信息区。

FILE * 变量名

文件的打开和关闭

文件使用完之后要记得关闭,不让会占用资源,文件关闭掉之后要记得把指针置空以免出现野指针

//打开文件FILE * fopen ( const char * filename, const char * mode );//关闭文件int fclose ( FILE * stream );

文件的打开方式

文件使用方式    文件使用方式    如果指定文件不存在

文件使用方式文件使用方式如果指定文件不存在
“r”(只读)为了输入数据,打开一个已经存在的文本文件出错
“w”(只写)为了输出数据,打开一个文本文件建立一个新的文件
“a”(追加)向文本文件尾添加数据建立一个新的文件
“rb”(只读)为了输入数据,打开一个二进制文件出错
“wb”(只写)为了输出数据,打开一个二进制文件建立一个新的文件
“ab”(追加)向一个二进制文件尾添加数据出错
“r+”(读写)为了读和写,打开一个文本文件出错
“w+”(读写)为了读和写,建议一个新的文件建立一个新的文件
“a+”(读写)打开一个文件,在文件尾进行读写建立一个新的文件
“rb+”(读写)为了读和写打开一个二进制文件出错
“wb+”(读写)为了读和写,新建一个新的二进制文件建立一个新的文件
“ab+”(读写)打开一个二进制文件,在文件尾进行读和写建立一个新的文件

代码示例

#include <stdio.h>int main(){    FILE *pf = fopen("test.txt",'w');    if(pf==NULL)    {        perror("FOPEN:");        //对文件指针进行判断以免返回空指针;    }    fput("haohaoxuexi,tiantianxiangshang",pf);    fclose(pf);    pf=NULL;            //文件关闭之后把指针置为空,以免出现野指针}

&lsquo; w &rsquo; 没有文件的情况下会新建一个文件在此程序文件夹下,可以看到文件已经生成了。

文件读写函数

功能函数名适用于
字符输入函数fgetc所有输入流
字符输出函数fputc所有输出流
文本行输入函数fgets所有输入流
文本行输出函数fputs所有输出流
格式化输入函数fscanf所有输入流
格式化输出函数fprintf所有输出流
二进制输入fread文件
二进制输出fwrite文件

二进制方式存储文件

二进制存储在文件内是查看不到具体信息的,要想在文件内查看具体信息要选择其他函数。

二进制形式存储代码示例

#define _CRT_SECURE_NO_WARNINGS#include <stdio.h>#include <string.h>#include <malloc.h>struct student{    char name[20];    int age;    char adress[20];}*s1;int main(){    s1 = (struct student*)malloc(sizeof(struct student));    if (s1 == NULL)    {        perror("malloc:");        return 0;    }    FILE* pf = fopen("test.txt", "wb");    if (pf == NULL)    {        perror("FOPEN:");   //对文件指针进行判断以免返回空指针;        return 0;    }    strcpy(s1->name, "陈独秀");    s1->age = 18;    strcpy(s1->adress,"东城区箭杆胡同20号");    fwrite(s1, sizeof(struct student), 1, pf);    fclose(pf);    pf = NULL;}

结果:

C语言怎么实现对文件进行操作

可以看到文件已经出现了部分乱码,还能看到文字的原因是文本文件打开的时候默认以一种编码形式打开,将本来存到文本里的二进制信息进行了解码。

对文件进行拷贝

这里要注意\需要再用\转义,否则是转义字符的意思

#define _CRT_SECURE_NO_WARNINGS#include <stdio.h>#include <string.h>#include <malloc.h>int main(){    FILE* pfr = fopen("C:\\Users\\22763\\Pictures\\Saved Pictures\\QQ图片20211001085735.jpg", "rb"); //要拷贝的文件目录    FILE* pfw = fopen("CopyPic.jpg", "wb");    char temp;    if (pfw == NULL||pfr==NULL)    {        perror("FOPEN:");   //对文件指针进行判断以免返回空指针;        return 0;    }    while (fread(&temp, sizeof(char), 1, pfr))    {        fwrite(&temp, sizeof(char), 1, pfw);    }    fclose(pfw);    fclose(pfr);    pfw = NULL;    pfr = NULL;}

文件随机读写函数

这三个函数并不常用,所有只要知道有这三个函数就行了以及他们是干什么的就可以了,用的时候再查。

fseek

int fseek(FILE stream,long offset,int origin );

根据文件指针的位置和偏移量来定位文件指针。

ftell

long ftell( FILE *stream );

返回文件指针相对于起始位置的偏移量

rewind

void rewind( FILE *stream );

让文件指针的位置回到文件的起始位置

文件缓冲区

文件在读或者写的时候存在一个文件缓冲区,因为与磁盘交互,需要一定时间(尽管很短),但是为了尽可能的节省时间,系统自动地在内存中设立了文件缓冲区,等攒够一定的数据,或者程序结束,一起读或写,这样大大提高读写速度,避免每个字符都要进行一次读或写。

以上就是关于“C语言怎么实现对文件进行操作”这篇文章的内容,相信大家都有了一定的了解,希望小编分享的内容对大家有帮助,若想了解更多相关的知识内容,请关注编程网行业资讯频道。

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯