文件代表一系列的字节。C语言提供了标准库函数用于文件的打开和关闭。

1、文件的打开

打开文件的操作通过标准库函数 fopen 完成,该函数定义如下:

FILE *fopen( const char * filename, const char * mode );

函数 fopen 的第二个参数指定了文件的访问模式,访问模式决定了流所许可的输入和输出操作。对访问模式字符串的许可值有严格的限制。该字符串的第一个字符只能为三种形式:r(read)、w(write)或者 a(append)。另可加字符b表示以二进制方式打开文件。字符串里可以写它们的组合,常用的文件打开方式有:

  • r:以只读方式打开文件
  • w:以只写方式打开文件
  • a:以添加方式打开或创建文件
  • r+:可以对文件读或写;
  • w+:可以对文件读或写,会覆盖文件原有内容;
  • a+:以添加方式打开,即从文件已有部分后面接着写,也可以读。

函数 fopen 将一个文件和一个流关联起来,并初始化一个类型为 FILE 的对象,该对象包含了控制该流的所有信息。这些信息包括指向缓冲区的指针;文件位置指示器,它指定了获取文件的位置;以及指示错误和文件结尾情况的标志。

需要注意的是,文件打开失败时,函数 fopen 返回空指针,这里必须检查函数的返回值,以确保后续操作的有效性。

2、文件的关闭

关闭文件时需要使用函数 fclose,该函数的定义如下:

int fclose( FILE *fp );

该函数把缓冲区内存在的所有数据保存到文件中,关闭文件,释放所有用于该流输入输出缓冲区的内存。函数 fclose 返回 0 表示成功,返回 EOF 表示产生错误。

当程序退出时,所有打开的文件都会自动关闭。尽管如此,还是应该在完成文件处理后,主动关闭文件。否则,一旦遇到非正常的程序终止,就可能会丢失数据。

3、文件的读写

标准的读写函数:

字符读写函数 :fgetc和fputc。以字符(字节)为单位,每次可从文件读出或向文件写入一个字符。

字符串读写函数:fgets和fputs。

数据块读写函数:freed和fwrite。

格式化读写函数:fscanf和fprinf。

使用以上函数都要求包含头文件stdio.h。

c语言 fgets函数 去除换行符_C语言文件的打开和关闭相关推荐

  1. C语言fgets()函数(以指定长度读取文件中的字符,并存入字符数组变量中)

    C语言fgets()函数(以指定长度读取文件中的字符,并存入字符数组变量中) 需要引入C 标准库 - <stdio.h> 文章目录 描述 声明 参数 返回值 实例 测试(确实只能读n-1个 ...

  2. gets和fgets函数及其区别,C语言gets和fgets函数详解

    gets和fgets函数及其区别,C语言gets和fgets函数详解 每当讨论 gets 函数时,大家不由自主地就会想起 1988 年的"互联网蠕虫",它在 UNIX 操作系统的 ...

  3. C语言fgets()函数

    测试fgets(string,num,stdin)与定义的字符数组的长度的关系, str是要存入的字符的字符数组的指针,num指定了读入字符的最大个数,fgets()函数会在遇到第一个换行符或者读取了 ...

  4. python读取txt文件时去除换行符

    python读取txt文件时去除换行符 python的readlines()方法用于读取所有行,且返回值是一个列表,换行符包含在字符串中. f = open("temp.txt", ...

  5. c语言常量换行符,C语言中换行符问题

    在缓冲输入中,换行符的确是个麻烦的问题,在这里做一个总结. 1.getchar() 记住:getchar()函数 读取每一个字符!每一个!包括空格,制表符和换行符. 错误代码: while(getch ...

  6. R语言str_trim函数去除字符串中头部和尾部的空格

    R语言str_trim函数去除字符串中头部和尾部的空格 目录 R语言str_trim函数去除字符串中头部和尾部的空格 #导入包和库 #仿

  7. 去除php_eol,php去除换行符的方法小结(PHP_EOL变量的使用)

    一个小小的换行,其实在不同的平台有着不同的实现,为什么要这样,可以是世界是多样的.本来在unix世界换行就用/n来代替,但是windows为了体 现他的不同,就用/r/n,更有意思的是在mac中用/r ...

  8. PHP去除换行符的方法小结(PHP_EOL变量的使用)

    一个小小的换行,其实在不同的平台有着不同的实现,为什么要这样,可以是世界是多样的. 本来在unix世界换行就用/n来代替,但是windows 为了体现他的不同,就用/r/n,更有意思的是在mac中用/ ...

  9. php 变量 换行,php去除换行符的方法小结(PHP_EOL变量的使用)_PHP教程

    一个小小的换行,其实在不同的平台有着不同的实现,为什么要这样,可以是世界是多样的.本来在unix世界换行就用/n来代替,但是windows为了体现他的不同,就用/r/n,更有意思的是在mac中用/r. ...

最新文章

  1. 【OpenCV 4开发详解】窗口交互操作
  2. php文件包含漏洞(input与filter)
  3. Python编译成C语言,性能有多暴力?
  4. Excel酷炫技能,批量修改工作表名称,让你的工作事半功倍
  5. 重磅盘点!2018年更受欢迎的技术干货,来来回回也就看了几十遍吧
  6. 【HTML】使用css3和html给网站添加上春节灯笼特效
  7. SSH终端仿真器:ZOC 8 for Mac
  8. 凌云一周看点 | 从运维和SRE角度看监控分析平台建设;从操作系统层面分析Java IO演进之路;机器学习落地的五个阶段...
  9. CRM客户关系管理系统开发第七讲——实现客户管理模块中删除客户的功能
  10. mybatis自联表三级菜单
  11. C#中操作Word(6)—— 如何向Word中插入图片
  12. KSO-Sqlserver事务的实现
  13. 如何给电脑安装双系统,电脑安装双系统教程
  14. C语言中static变量详解
  15. Ionic3安装和项目创建
  16. MOSS SDK学习(2)
  17. 王爽汇编语言 实验14
  18. (一)Redis——五大数据类型及基础知识
  19. 市场全线激活,一类币存在博弈机会
  20. Format函数的用法

热门文章

  1. 使用JavaScript调用Microsoft XMLDOM库进行XML字符串的解析
  2. Hybris DDIC type and its counterpart model class
  3. SAP CRM的Genil层和Hybris的jalo模型
  4. sap.m.library acts as one of the two most core framework library
  5. SAP UI5 control id generation by jQuery
  6. How to bind multiple properties with formatter on one control from Ke
  7. new Fiori 2.0 theme sap_belize
  8. Message popover
  9. WebClient UI删除搜索条件的后台处理,以及max hit的处理逻辑
  10. Sales Volume Analysis PoC app test - environment setup finished