参考中国大学MOOC 浙江大学翁恺C语言程序设计在线课程

目录

常用文件输入输出符号格式及标准

常用应用对象为文件的库函数简介:

库函数部分:

文件创建、打开、阅读:

数据块写入读出(只有这两个函数可以对二进制文件进行数据操作):

字符及字符串写入读出:

格式化读写函数:

其他函数:

符号和格式部分:


  1. 常用文件输入输出符号格式及标准

  2. 常用应用对象为文件的库函数简介:

  • 文件的创建打开阅读
  • 数据块的写入读出
  • 字符串及字符的写入读出
  • 格式化读写
  • 其他常用函数

库函数部分

文件创建、打开、阅读:

1、fopen:

功能:见下表指令集

声明源代码:FILE * fopen(const char * path,const char * mode);

  • path:文件名
  • mode:指令集(见下表)

示例:包含文件地址的指针变量 = fopen("文件名" , "指令'');

返回值:文件的指针

fopen
r 打开只读  
r+ 打开读写,从⽂件头开始  
w 如果不存在则新建,如果存在则清空  
w+ 打开读写。如果不存在则新建,如果存在则清空  
a 打开追加。如果不存在则新建,如果存在则从⽂件尾开始  
..x 如果⽂件已存在则不能  

2、fclose:

声明源代码:int fclose(FILE *fp);

功能:关闭fp指向的文件(一个文件同时只能被一个用户打开,所以对文件的操作执行完毕后要关闭文件)

返回值:如果成功关闭,fclose()函数返回0,否则返回EOF。

数据块写入读出(只有这两个函数可以对二进制文件进行数据操作):

3、fwrite:

声明源代码:int fwrite(const void* ptr, int size, int count, FILE* fp);

功能:从ptr指向的地方读取count个size大小的数据写入fp指向的文件中(若指针指向的位置后方有数据会被新写入的数据覆盖)

返回值:返回成功写入数据块个数(所有正常写入应该为count)

4、fread:

声明源代码:int fread(void *ptr, int size, int count ,FILE *stream);

功能:从fp指向的文件中读取size个字节的数据,读取count次存入ptr指向的数据块中。

返回值:返回的是成功读取到的字节数。

字符及字符串写入读出:

5、fgetc:

声明源代码:int fgetc(FILE *stream);

功能:从stream指向的文件中读取一个字节的数据。

返回值:返回所读取的一个字节。如果读到文件末尾或者读取出错时返回EOF。

6、fputc:

声明源代码:int fputc(char ch, FILE *stream);

功能:向stream指向的文件中写入ch;

返回值:返回的时写入等价的字符的ASCII码值,出错是,返回EOF(-1)。

7、fgets:

声明源代码:char *fgets(char *str, int size, FILE *stream);

功能:向stream指向的文件内写入str数组中的size字节的数据。

返回值:调用成功,将读取的字符串返回,使用fgets函数读取的时候会自动在字符串后边加上一个‘\0’,失败返回NULL。

8、fputs:

声明源代码:int  fputs( const char * Str, FILE * File);

功能:向File指向的文件中输出Str指向的字符串( 可在文件指针处填写stdout(标准输出) )

返回值:如果写入成功,则返回非0,此时编译器默认为返回1;如果写入错误,则返回EOF。

格式化读写函数:

(下方提到的字符串也做格式串)

9、fscanf:

声明源代码:int fscanf(FILE *stream, const char *format, ...);

功能:从stream指向的文件读取字符串到... 。fscanf遇到空格和换行时结束(fgets遇到空格不结束)。

示例:fscanf(fp ,"%d" , &obj)

返回值:返回实际读取的数据个数,出错或者到结尾返回EOF。

Tips:fscanf与scanf函数的区别在于scanf是从标准输入(键盘)读取数据,而fscanf是从指定的文件中读取数据。

10、fprintf:

声明源代码:int fprintf(FILE *stream, const char *format, ...);

功能:将format指向的字符串写入文件...取决于字符串中待填入项目(%d等)的多少。(当文件区填入stderr时输出至屏幕)

示例:fprintf(fp, obj);(可以不填...中的内容使仅仅输出字符串到文件)

fprintf(fp, "%d",obj);(类比于printf)

返回值:本次写入操作写到文件中的字节数。

Tips:fprintf与printf的不同之处在于printf是写入到标准输出(屏幕),而fprintf是将数据写入到指定的文件中去。

其他函数:

11、fseek(控制文件指针偏移):

声明源代码:int fseek(FILE *fp, long offset, int whence);

 whence是指偏移方式。有如下三种值可选:

  • SEEK_SET 从距文件开头offset 位移量为新的读写位置.
  • SEEK_CUR 以目前的读写位置往后增加offset 个位移量.
  • SEEK_END 将读写位置指向文件尾后再增加offset 个位移量.

功能:将fp指向文件的文件指针按whence的偏移方式,偏移offset个偏移量

示例: fseek(fp, -(long)sizeof(int), SEEK_END);

返回值:调用成功返回0,失败返回-1,error存放错误代码。

12、ftell(获取当前文件指针位置):

声明源代码:long ftell( FILE * File);

功能:获取File指向的文件的位置指针相对于文件头指针的位移量

返回值:无返回值。

13、rewind(将文件指针指向文件开头):

声明源代码:void rewind( FILE * File);

功能:使File指向的文件的位置指针指向首地址。

返回值:当前读写位置偏离文件头部的字节数,操作失败返回1L。

14、feof(判断文件指针是否指向文件尾)(只适用于文本文件不适用于二进制文件):

声明源代码:void feof( FILE * File);

功能:检测File指向的文件的位置指针是否指向文件尾。

返回值:是则返回1,不是则为0。

15、ferror(检查文件操作错误函数):

声明源代码:int ferror( FILE * File);

功能:检测File指向的文件的读写是否出错。

返回值:是则返回1,不是则为0。

Tips:在调用fopen,fclose函数后会产生一个新的ferror的函数值所以应该在,文件的打开关闭操作后尽快判断

16、clearerr(清除出错标志和文件结果标志)

声明源代码:void clearerr( FILE * File);

功能:清除File指向的文件的文件出错标志和结果标志。

返回值:无返回值。

—————————————————————————————————————————————————

符号和格式部分:

格式化的输⼊输出
• printf
• %[flags][width][.prec][hlL]type
• scanf
• %[flag]ty

  • %*[^,]    (逗号前的东西都舍去)
  • %[^,]    (作为字符串读入)

【C语言】文件操作及输入输出格式(文件常用的库函数)相关推荐

  1. c语言中 文件的字符串输入函数是6,【C语言】文件操作及输入输出格式(文件常用的库函数)...

    参考中国大学MOOC 浙江大学翁恺C语言程序设计在线课程 目录 常用文件输入输出符号格式及标准 常用应用对象为文件的库函数简介: 库函数部分: 文件创建.打开.阅读: 数据块写入读出(只有这两个函数可 ...

  2. matlab读int16读文件_Matlab文件操作及读txt文件(fopen,fseek,fread,fclose)

    Matlab 文件操作及读 txt 文件 (fopen,fseek,fread,fclose) matlab 文件操作 文件操作是一种重要的输入输出方式,即从数据文件读取数据或将 结果写入数据文件. ...

  3. fclose用法matlab,matlab文件操作及读txt文件(fopen,fseek,fread,fclose

    matlab文件操作及读txt文件(fopen,fseek,fread,fclose) matlab文件操作 文件操作是一种重要的输入输出方式,即从数据文件读取数据或将结果写入数据文件.MATLAB提 ...

  4. 使用文件操作函数实现:文件的复制功能。

    2019独角兽企业重金招聘Python工程师标准>>> //使用文件操作函数实现:文件的复制功能. #include <stdio.h> #include <std ...

  5. C# 对Ini文件操作(C# ini文件操作类)

    *************************************************** 更多精彩,欢迎进入:http://shop115376623.taobao.com ****** ...

  6. 简述python文件操作的流程_Python文件操作详解

    这篇文章主要介绍了Python 文件操作的详解及实例的相关资料,希望通过本文大家能够理解掌握Python 文件操作的知识,需要的朋友可以参考下 Python 文件操作的详解及实例 一.文件操作 1.对 ...

  7. C语言——文件操作(2)文件的读写操作

    之前,我讲解了文件的基本情况与读写模式,看到这篇博客的小伙伴们先参考这篇博客: C语言--文件操作详解(1)_ 接下来,我会继续讲解文件操作的第二大步:文件读/写操作. 目录 A.文件的顺序读写 一. ...

  8. c语言文件和结构体,C语言 文件操作 结构体与文件 fgetc fputc fread fwrite

    #include #include /*C语言 将键盘输入的字符写入文件*/ int main(int argc, char* argv[]) { FILE *fp; //文件指针 char str1 ...

  9. C++ 流 文件操作(输入输出流)

    到目前为止,我们已经使用了 iostream 标准库,它提供了 cin 和 cout 方法分别用于从标准输入读取流和向标准输出写入流. 本教程介绍如何从文件读取流和向文件写入流.这就需要用到 C++ ...

最新文章

  1. Android studio 下 JNI 开发实例
  2. 【spring】让spring的注解和xml配置文件变得优雅,最常用的注解
  3. 《算法竞赛进阶指南》打卡-基本算法-AcWing 92. 递归实现指数型枚举:递推与递归、二进制状态压缩、dfs
  4. SQL Server 中的事务和锁(三)-Range S-U,X-X 以及死锁
  5. scala 的39个关键字
  6. LeetCode 287. Find the Duplicate Number (时间复杂度O(n)) + 链表判断环
  7. 伏安特性曲线实验报告_电化学扩散层,Cottrell equation,取样电流伏安法
  8. C++string容器-字符存取
  9. Java基础(三)对象与类
  10. node解决通过npm无法安装forever的方法
  11. [POJ1830] 开关问题
  12. android 程序错乱,android – 安装时应用程序崩溃,错误sqlite3_...
  13. 2022电工杯B题思路模型分析
  14. Python处理QXDM抓取log
  15. JavaScript(十二)常见js特效
  16. 49、常见网络故障及解决办法合集
  17. altium 不规则焊盘 创建异形焊盘方法
  18. android耳机上报流程,Android 耳机插入过程分析
  19. VMware win7 x64虚拟机安装
  20. 和导师的微信聊天翻车现场,你一定经历过

热门文章

  1. php 上传excel到mysql_PHP上传Excel文件导入数据到MySQL数据库示例
  2. Mac homebrew报错Error: homebrew-core is a shallow clone.
  3. cpu矿工cpuminer-multi编译与使用
  4. nodejs 本地php服务器,node.js创建本地服务器详解
  5. k8s kubectl生成kube-config文件
  6. HTML5商城开发四 多图或多商品的水平滚动展示
  7. Linux下部署Kafka分布式集群,安装与测试
  8. 浅谈SQL Server 数据库的触发器
  9. 高效率去掉js数组中重复项
  10. python代替嵌套列表_python含嵌套的列表去重问题