文件&&头文件&&源文件(C++)

本文详细介绍了C++中与文件操作相关的函数,包括_fsope、_wfsopen、fread、fwrite、fflush、rename、remove和_access的使用方法,以及头文件和源文件中函数声明与定义的注意事项。示例中讨论了函数如sprintf_s的安全性与变参数函数的设计。
摘要由CSDN通过智能技术生成

文件相关操作

_fsope和_wfsopen

【函数原型】

FILE *_fsopen( 
   const char *filename,
   const char *mode,
   int shflag 
);
FILE *_wfsopen( 
   const wchar_t *filename,
   const wchar_t *mode,
   int shflag 
);

注: _wfsopen 是 _fsopen 的宽字符版本,其他没有什么不同

【参数】

  • filename

    要打开的文件的名称。

  • mode

    允许的访问类型。

  • shflag

    允许的共享类型。

【返回值】
这些函数均返回指向流的指针。 一个 null 指针值指示错误。 如果 filename 或 mode 是 NULL 指针或空字符串,这些函数将调用无效的参数处理程序

【说明】
_fsopen 函数以流的形式打开由 filename 指定的文件并使该文件做好准备以进行后续的共享读写,如模式和 shflag 参数所定义。 _wfsopen 是 _fsopen 的宽字符版本;_wfsopen 的 filename 和 mode 参数是宽字符串。 除此以外,_wfsopen 和 _fsopen 的行为完全相同

参数mode说明

  • “r”
    打开以便读取。 如果文件不存在或找不到,_fsopen 调用将失败;

  • “w”
    打开用于写入的空文件。 如果给定文件存在,则其内容会被销毁;

  • “a”
    打开以便在文件末尾进行写入(追加);如果文件不存在,则首先创建它;

  • “r+”
    打开以便读取和写入。 (该文件必须存在);

  • “w+”
    打开用于读取和写入的空文件。 如果给定文件存在,则其内容会被销毁;

  • “a+”
    打开以便进行读取和追加;如果文件不存在,则首先创建它;

使用 “w” 和 “w+” 类型时要小心,因为它们可能会破坏现有文件。
使用 “a” 或 “a+” 访问类型打开文件时,所有写入操作均将在文件末尾进行。 使用 fseek 或 rewind 可重新定位文件指针,但在执行任何写入操作前,文件指针将始终被移回文件末尾。 因此,无法覆盖现有数据。 指定 “r+”、”w+” 或 “a+” 访问类型时,允许读取和写入(文件将处于打开状态以进行更新)。 但是,在读取与写入之间切换时,必须有中间 fsetpos、fseek 或 rewind 操作。 如果需要的话,可以为 fsetpos 或 fseek 操作指定当前位置

mode后还可以追加以下模式:

  • “t”
    在文本(转换)模式下打开文件。 在这种模式下,输入时,回车换行 (CR-LF) 组合将转换为单一的换行 (LF);输出时,LF字符将转换为 CR-LF 组合。 CTRL+Z 也将在输入时解释为文件尾字符。 在打开以进行读取或读取/写入的文件中,_fsopen将检查文件末尾的 Ctrl+Z 并在可能的情况下将其移除。 这是因为使用 fseek 和 ftell 在以 CTRL+Z结尾的文件中移动
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值