news 2026/4/28 4:10:25

C语言相关的文件处理知识

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
C语言相关的文件处理知识

1.文本文件就是内存的数据以字符编码(比如 ASCII)的方式保存到外存(比如硬盘、优盘等),这类文件用记事本等文本编辑器就可查看。二进制文件是把内存中的数据及结构原封不动的平移复制到文件的过程,此时用文本编辑器打开文件通常是乱码的现象,所以得用专门的软件程序才能读取其数据进行打开

2.文件打开函数fopen 函数来自 stdio.h。其函数声明为:
FILE * fopen ( const char * filename, const char * mode );
其参数 filename 是文件的存储路径及名称。参数 mode 为文件的打开方式


当文件处理结束后务必用 fclose 函数关闭文件缓冲区。另外由于缓冲区已经被释放回收,所以指向文件缓冲区的指针变量应设置为NULL

    删除文件与修改文件名的函数remove
    给文件改名用 rename 函数
    int remove ( const char * filename );
    int rename ( const char * oldname, const char * newname );
    两个函数返回值如果是 0 代表处理成功。非零就是处理失败的错误编号

    4.创建文件的方法

    5.向文本文件写入数据的函数

    那么输出呢?

    6.如何读取一个文本文件中不确定长度的所有整数?

    7.文件光标指什么?
    当文件以 r(read)方式打开后,会有一个光标(cursor)指向文件内容的当前位置,当我们不断读取内容时,光标会不断后移,就如同我们看书时的目光

    8.如何得到和设置文件光标位置?
    ftell 函数能够返回当前的光标位置
    可以用rewind函数让光标回到开头处。或者用fsetpos函数
    把光标放置在某个位置点上。
    fsetpos函数:

    9.如何对一个文本文件的内容进行改写操作?

    10.二进制文件的读写操作函数 fread 与 fwrite 的用法?
    当我们要把内存中的一片字节复制到文件或者反之把文件中的一段二进制字节复制到内存,这样的基于二进制 01 数据的平移复制操作都可以用 fread 和 fwrite 函数来实现。其函数声明为:
    size_t fread ( void * ptr, size_t size, size_t count, FILE * stream );
    实际读取的大小 fread ( void * 读取后放置的内存位置,size_t 一个数据的字节数, size_t 数据总数量,FILE * 从哪个文件缓冲区读取);
    fwrite 函数的参数与返回值的逻辑类似。区别是从哪个内存地址读取,然后写入到哪个文件缓冲区。
    size_t fwrite ( const void * ptr, size_t size, size_t count, FILE * stream );

    11.如何实现文件的复制功能?

    具体代码如下:
    #include <stdio.h>
    int main ()
    {
    FILE * from = fopen(“E:\保你平安.mp4”,“rb”);
    FILE * to = fopen(“d:\tf\bnpa.mp4”,“wb”);
    unsigned char buffer[1024];
    int len;
    if ( from && to)
    {
    while ( (len=fread(buffer,sizeof(char),1024,from))>0 )
    {
    fwrite(buffer, sizeof(char), len, to);
    }
    fclose(from );
    fclose(to);
    }
    return 0;
    }

    结尾奉上一份思维导图:

    版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
    网站建设 2026/4/28 4:07:35

    AI Agent Harness模型版本迭代管控

    AI Agent Harness模型版本迭代管控&#xff1a;构建面向下一代智能体开发全生命周期的工程化指南 一、标题与摘要/引言&#xff08;合并后保证超过10000字前置说明&#xff09; 前置说明&#xff1a;本章节在原始通用模板要求中为“清晰明确引人入胜SEO友好标题”“引言部分需…

    作者头像 李华
    网站建设 2026/4/28 4:06:22

    DeepSeek的484天:从“557万训练成本“到腾讯阿里争相投资!

    2026年4月&#xff0c;中国人工智能领域迎来了一场引人注目的资本盛宴。作为2024年底横空出世的AI新星&#xff0c;DeepSeek仅用484天时间&#xff0c;就从一家低调的模型实验室&#xff0c;变成了腾讯、阿里争相入局的焦点企业。事件源于2026年4月24日DeepSeek-V4的正式发布。…

    作者头像 李华
    网站建设 2026/4/28 4:03:27

    开源 AI 编程 CLI 排行榜:本地开发者的终极选择指南

    开源 AI 编程 CLI 排行榜&#xff1a;本地开发者的终极选择指南 基于 Reddit r/LocalLLaMA 真实用户反馈与 Terminal Bench 基准测试&#xff0c;为你梳理最适合本地开发的开源 CLI 编码 Agent。 引言 在 AI 编程工具爆炸的时代&#xff0c;Claude Code、GitHub Copilot、Curs…

    作者头像 李华
    网站建设 2026/4/28 3:49:59

    5分钟上手!无需API权限的Instagram数据爬虫工具实战指南

    5分钟上手&#xff01;无需API权限的Instagram数据爬虫工具实战指南 【免费下载链接】instagram-crawler Get Instagram posts/profile/hashtag data without using Instagram API 项目地址: https://gitcode.com/gh_mirrors/in/instagram-crawler 还在为获取Instagram公…

    作者头像 李华
    网站建设 2026/4/28 3:49:56

    metaRTC8 成功适配 RTOS:开启 MCU/嵌入式实时音视频新时代

    BK7258 FreeRTOS metaRTC H.264 全功能调测成功&#xff0c;支持 720p 实时编码与 WebRTC 互通。一、引言&#xff1a;RTOS 相对于 Linux 嵌入式的优势随着物联网与智能终端的快速发展&#xff0c;越来越多的设备正从“功能设备”迈向“智能交互终端”。在这一过程中&#xf…

    作者头像 李华