第3章 文 件 类

文件可分为文本文件和二进制文件两种。文本文件可用来保存字符,文件中的字节是字符的编码,源文件是文本文件。二进制文件可用来保存可执行文件,文件中的字节是机器指令或数据编码。
C语言程序有3个预定义的文本流在程序执行时默认打开:标准输入(stdin)、标准输出(stdout)和标准错误(stderr)。
文件的读写属于I/O操作。FILE类型保存和文件有关的信息,文件的打开操作在内存中分配一个FILE类型并将其指针返回。大多数I/O函数都接受一个指向FILE类型的指针作为参数,标准I/O库函数在头文件stdio.h中声明。常用的I/O函数有:
FILE fopen(const char filename, const char mode) 函数:用来打开文件流,接受文件名filename和打开模式mode两个字符串参数,返回一个FILE 类型的指针。若打开文件时遇到错误,则fopen函数返回null指针。fopen常用打开模式如表 3-1所示。

int fclose(FILE *stream) 函数:用来关闭一个打开的流stream并清除其所有内部数据缓冲区。如关闭时遇到错误,则返回EOF,否则返回0。fopen和fclose函数通常成对使用。
int fgetc(FILE *stream) 函数:从流stream中读取下一个字符,并把它作为一个int类型返回。若发生错误或已经位于文件尾,函数返回EOF。
int fputc(int c, FILE stream) 函数:把字符c写入流stream的当前位置,并将写入值按int类型返回。若发生错误,函数返回EOF。
int ungetc(int c, FILE *stream) 函数:将字符c压回输入流stream,当下次读取流stream时会读取先前被压入的字符。若多次调用ungetc函数压入字符,当下次读取流stream时先前压入的字符按与压入相反的顺序读取。若函数调用成功,则返回被压入的字符c;若函数调用失败,则返回EOF。
char fgets(char s, int n, FILE *stream) 函数:三个参数为指向字符数组起始位置的指针s、计数值n和输入流stream。函数从输入流stream读取字符到数组,直到遇到换行符、文件尾或未遇到换行符和文件尾但读取了n-1个字符。读取完毕后,数组中已读取的字符后会自动添加一个结束符‘0’。若因读取到换行符而结束,换行符也存储在数组中,且在自动添加的结束符‘0’之前。函数的返回值为指向字符数组起始位置的指针s,当读取任何字符之前就遇到文件结束符或错误时,返回null指针。
int fscanf( FILE stream, const char format, ... ) 函数:对格式化的输入文本进行解析,从第一个输入流参数stream中读取字符,根据格式控制字符串参数对字符序列进行转换后存储到指针所指定的对象中。
int fprintf( FILE stream, const char format, ... ) 函数:根据格式控制字符串参数转换字符,将其输出给第一个参数stream所指定的流。
size_t fread(void ptr, size_t size, size_t count, FILE stream) 函数:可用来读取二进制文件,从流stream读取最多count个大小为size的元素到指针ptr指向的数组。fread函数最多读取count个元素,并返回其实际读取的元素个数,故当读到文件尾时,返回值可能小于count。若遇到错误,则返回0。
size_t fwrite(const void ptr, size_t size, size_t count, FILE stream) 函数:可用来写入二进制文件,将指针ptr指向的数组中最多count个大小为size的元素写入流stream。fwrite函数最多写入count个元素,并返回实际写入的元素个数。除非出现错误,否则函数的返回值与count相同。
int remove(const char *filename)函数:删除filename文件。
int rename(const char oldname, const char newname)函数:把oldname的文件名修改为newname。

《C语言课程设计》一第3章 文 件 类相关推荐

  1. C语言课程设计_职工工资管理系统

    要求 设计一个职工工资管理系统: (1)输入记录:将每一个职工的姓名.ID号以及基本工资.职务工资.岗位津贴.医疗保险.公积金的数据作为一个记录.该软件能建立一个新的数据文件或给已建立好的数据文件增加 ...

  2. c语言黑白棋程序设计报告,C语言课程设计黑白棋

    C语言课程设计--黑白棋 第一章 绪论 1.1 C语言概述 C语言是国际上广泛流行且很有发展前途的计算机高级语言,不仅用来编写应用软件,也用来编写系统软件.C语言功能丰富,使用灵活,可移植性好,深受广 ...

  3. c语言编程票务系统,C语言课程设计票务管理系统

    C语言课程设计票务管理系统 C语言课程设计1西安交通大学城市学院C语言程序设计课程设计报告题目图书信息管理系统专业自动化班级自动化101姓名陈蕾完成日期2012年5月31日C语言课程设计2目录第一章项 ...

  4. 学校作业《C语言课程设计》

    2.职工信息管理系统 代码在文末自取!!! 一.课程设计题目:C语言课程设计 二.课程设计任务: 学生可从以下项目中任选一个为题,单独完成程序的编写工作,并经调试后能正常运行方可参加结题答辩. 1.学 ...

  5. 基于pbl的c语言课程设计及学习指导 答案,基于PBL的C语言课程设计及学习指导前三章答案1.0版...

    <基于PBL的C语言课程设计及学习指导前三章答案1.0版>由会员分享,可在线阅读,更多相关<基于PBL的C语言课程设计及学习指导前三章答案1.0版(67页珍藏版)>请在人人文库 ...

  6. 1到100猜数字游戏规则c语言,[C语言课程设计猜数字游戏1.doc

    [C语言课程设计猜数字游戏1 课 程 设 计 报 告 课程名称 C语言程序设计报告 课题名称 猜数字游戏 专 业 电气工程及其自动化 班 级 1104 学 号 33 姓 名 张腾 指导教师 黄晓宇 丁 ...

  7. c语言课设报告时钟vc环境,C语言课程设计报告模拟时钟转动程序

    C语言课程设计报告模拟时钟转动程序 课程设计报告题 目 课 程 名 称 结构化程序设计课程设计 院 部 名 称 专 业 班 级 学 生 姓 名 王蕾 学 号 课程设计地点 课程设计学时 指 导 教 师 ...

  8. 河南理工大学c语言报告封面,河南理工大学图书信息管理系统设计_纯c语言课程设计.doc...

    河南理工大学图书信息管理系统设计_纯c语言课程设计 C语言课程设计报告 题 目:图书信息管理系统设计 河南理工大学计算机学院 目 录 第一章 题目与要求 1.1 问题提出1 1.2 本系统涉及的知识点 ...

  9. c语言课设报告时钟vc环境,C语言课程设计报告模拟时钟转动程序.doc

    C语言课程设计报告模拟时钟转动程序 PAGE 课程设计报告 题 目 课 程 名 称 结构化程序设计课程设计 院 部 名 称 专 业 班 级 学 生 姓 名 王蕾 学 号 课程设计地点 课程设计学时 指 ...

  10. c语言设计匀速直线运动,C语言课程设计指导书2015版(试用版)201506.doc

    C语言课程设计指导书2015版(试用版)201506精选 C语言课程设计 指导书 信息技术教学与实验中心 2015-04 目 录 第1章 C语言课程设计基本要求-------------- 1 §1. ...

最新文章

  1. 最短路-SPAF模板
  2. 叙述式教学方案计算机技术,计算机病毒及防治叙述式教学设计方案.doc
  3. 网站静态化处理—动静分离策略(3)
  4. php中对象怎么访问i属性_PHP--序列化与反序列化详解
  5. 【软考-软件设计师】计算机体系结构的分类
  6. 一道数组求连续子集最大值的题目。
  7. node oauth2验证_如何设置和使用护照OAuth Facebook身份验证(第2部分)| Node.js
  8. python canny优化_python实现canny边缘检测
  9. python集合去重_python集合去重
  10. 基于python的图像分割并计数
  11. 关于lidroid xUtils 开源项目
  12. GB28181---XML解析
  13. 序列平稳性和纯随机性检验
  14. 电子工程师的自我修养 - 20例电路讲解
  15. forum.anywlan.com.php,一句话让您理解WDS和WISP的区别/多数WISP路由器的简单有效的通用设置方法...
  16. Linux进程间通信——使用信号量
  17. 用Python 实现简单的汇率计算
  18. [AndroidStudio]Building Apps with Over 64K Methods
  19. 服务器挖矿病毒的排查过程
  20. windows系统DOS窗口

热门文章

  1. asp之GetArray提取链接地址,以$Array$分隔的代码
  2. javascript基础拾遗——词法作用域
  3. 每3位新码农中就有2个是单身?来自31000人的调查报告显示……
  4. ClickHouse之访问权限控制
  5. windows 安装
  6. git常用命令(二)
  7. 解决复制虚拟机时候网络不从eth0开始问题
  8. OpenGL_Qt学习笔记之_05(纹理映射)
  9. Reporting Services 安装的备份和还原操作
  10. Makefile文件的使用