使用FILE文件指针进行文件的操作相关函数

VC中stdio.h中FILE结构定义:

struct _iobuf {
        char *_ptr;
        int   _cnt;
        char *_base;
        int   _flag;
        int   _file;
        int   _charbuf;
        int   _bufsiz;
        char *_tmpfname;
        };
typedef struct _iobuf FILE;

 

1.  fopen:打开一个文件

        第二个函数mode表示打开方式:

     r 以只读方式打开文件,该文件必须存在。

  r+ 以可读写方式打开文件,该文件必须存在。

  rb+ 读写打开一个二进制文件,允许读数据。

  rw+ 读写打开一个文本文件,允许读和写。

  w 打开只写文件,若文件存在则文件长度清为0,即该文件内容会消失。若文件不存在则建立该文件。

  w+ 打开可读写文件,若文件存在则文件长度清为零,即该文件内容会消失。若文件不存在则建立该文件。

  a 以附加的方式打开只写文件。若文件不存在,则会建立该文件,如果文件存在,写入的数据会被加到文件尾,即文件原先的内容会被保留。(EOF符保留)

  a+ 以附加方式打开可读写的文件。若文件不存在,则会建立该文件,如果文件存在,写入的数据会被加到文件尾后,即文件原先的内容会被保留。 (原来的EOF符不保留)

  wb 只写打开或新建一个二进制文件;只允许写数据。

  wb+ 读写打开或建立一个二进制文件,允许读和写。

  wt+ 读写打开或着建立一个文本文件;允许读写。

  at+ 读写打开一个文本文件,允许读或在文本末追加数据。

  ab+ 读写打开一个二进制文件,允许读或在文件末追加数据。

 

2. fclose:关闭打开的文件流

       使用fclose函数就可以把缓冲区内最后剩余的数据输出到磁盘文件中,并释放文件指针和有关的缓冲区。

       如果流成功关闭,fclose 返回 0,否则返回EOF(-1)。

    如果流为NULL,而且程序可以继续执行,fclose设定error number给EINVAL,并返回EOF。

3. fread: 从一个文件流中读数据

  函数原型::size_t fread(void*buffer,size_tsize,size_tcount,FILE*stream); 

  参 数:

    (1) 用于接收数据的地址(指针)(buffer

    (2) 单个元素的大小(size) :单位是字节而不是位,例如读取一个int型数据就是4个字节

       (3) 元素个数(count

    (4) 提供数据的文件指针(stream)

  返回值:读取的元素的个数

 

4. fwrite:向文件写入数据

        注意:这个函数以二进制形式对文件进行操作,不局限于文本文件

     函数原型::size_t fwrite(const void* buffer,size_t size,size_t count,FILE* stream);

  参数:  

        (1)buffer:是一个指针,对fwrite来说,是要输出数据的地址。

  (2)size:要写入内容的单字节数;

  (3)count:要进行写入size字节的数据项的个数;

  (4)stream:目标文件指针。

  (5)返回实际写入的数据项个数count

 

5.  ftell,_ftelli64:返回文件的游标位置:

          用于得到文件位置指针当前位置相对于文件首的偏移字节数。

 

6. fseek,_fseeki64: 重定位文件流上的文件内部位置指针

  注意:不是定位文件指针,文件指针指向文件/流。

        位置指针指向文件内部的字节位置,随着文件的读取会移动,文件指针如果不重新赋值将不会改变指向别的文件。

        函数原型::int fseek(FILE *stream, long offset, int fromwhere);

  参数:  

        (1)FILE *:文件流;

  (2)offset:指针偏移量;

  (3)fromwhere:偏移起始位置:

                 SEEK_SET(0): 文件开头

                 SEEK_CUR(1): 当前位置

                 SEEK_END(2): 文件结尾

 

内容概要:文章以“智能网页数据标注工具”为例,深入探讨了谷歌浏览器扩展在毕业设计中的实战应用。通过开发具备实体识别、情感分类等功能的浏览器扩展,学生能够融合前端开发、自然语言处理(NLP)、本地存储与模型推理等技术,实现高效的网页数据标注系统。文中详细解析了扩展的技术架构,涵盖Manifest V3配置、内容脚本与Service Worker协作、TensorFlow.js模型在浏览器端的轻量化部署与推理流程,并提供了核心代码实现,包括文本选择、标注工具栏动态生成、高亮显示及模型预测功能。同展望了多模态标注、主动学习与边缘计算协同等未来发展方向。; 适合人群:具备前端开发基础、熟悉JavaScript和浏览器机制,有一定AI模型应用经验的计算机相关专业本科生或研究生,尤其适合将浏览器扩展与人工智能结合进行毕业设计的学生。; 使用场景及目标:①掌握浏览器扩展开发全流程,理解内容脚本、Service Worker与弹出页的通信机制;②实现在浏览器端运行轻量级AI模型(如NER、情感分析)的技术方案;③构建可用于真实场景的数据标注工具,提升标注效率并探索主动学习、协同标注等智能化功能。; 阅读建议:建议结合代码实例搭建开发环境,逐步实现标注功能并集成本地模型推理。重点关注模型轻量化、内存管理与DOM操作的稳定性,在实践中理解浏览器扩展的安全机制与性能优化策略。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值