c语言程序中关于文件的操作.doc

文件操作函数 C语言 (FILE fputc fgetc fputs fgets fscanf fprintf)

在ANSI C中,对文件的操作分为两种方式,即流式文件操作和I/O文件操作,下面就分别介绍之。

一、流式文件操作

这种方式的文件操作有一个重要的结构FILE,FILE在stdio.h中定义如下:

typedef struct {

int level; /* fill/empty level of buffer */

unsigned flags; /* File status flags */

char fd; /* File descriptor */

unsigned char hold; /* Ungetc char if no buffer */

int bsize; /* Buffer size */

unsigned char _FAR *buffer; /* Data transfer buffer */

unsigned char _FAR *curp; /* Current active pointer */

unsigned istemp; /* Temporary file indicator */

short token; /* Used for validity checking */

} FILE; /* This is the FILE object */

FILE这个结构包含了文件操作的基本属性,对文件的操作都要通过这个结构的指针来进行,此种文件操作常用的函数见下表 函数 功能

fopen() 打开流

fclose() 关闭流

fputc() 写一个字符到流中

fgetc() 从流中读一个字符

fseek() 在流中定位到指定的字符

fputs() 写字符串到流

fgets() 从流中读一行或指定个字符

fprintf() 按格式输出到流

fscanf() 从流中按格式读取

feof() 到达文件尾时返回真值

ferror() 发生错误时返回其值

rewind() 复位文件定位器到文件开始处

remove() 删除文件

fread() 从流中读指定个数的字符

fwrite() 向流中写指定个数的字符

tmpfile() 生成一个临时文件流

tmpnam() 生成一个唯一的文件名

下面就介绍一下这些函数

1.fopen()

fopen的原型是:FILE *fopen(const char *filename,const char *mode),fopen实现三个功能

为使用而打开一个流

把一个文件和此流相连接

给此流返回一个FILR指针

参数filename指向要打开的文件名,mode表示打开状态的字符串,其取值如下表

字符串 含义

"r" 以只读方式打开文件

"w" 以只写方式打开文件

"a" 以追加方式打开文件

"r+" 以读/写方式打开文件,如无文件出错

"w+" 以读/写方式打开文件,如无文件生成新文件

一个文件可以以文本模式或二进制模式打开,这两种的区别是:在文本模式中回车被当成一个字符'n',而二进制模式认为它是两个字符0x0D,0x0A;如果在文件中读到0x1B,文本模式会认为这是文件结束符,也就是二进制模型不会对文件进行处理,而文本方式会按一定的方式对数据作相应的转换。

系统默认的是以文本模式打开,可以修改全部变量_fmode的值来修改这个设置,例如_fmode=O_TEXT;就设置默认打开方式为文本模式;而_fmode=O_BINARY;则设置默认打开方式是二进制模式。

我们也可以在模式字符串中指定打开的模式,如"rb"表示以二进制模式打开只读文件,"w+t"或"wt+"表示以文本模式打开读/写文件。

此函数返回一个FILE指针,所以申明一个FILE指针后不用初始化,而是用fopen()来返回一个指针并与一个特定的文件相连,如果成败,返回NULL。

例:

FILE *fp;

if(fp=fopen("123.456","wb"))

puts("打开文件成功");

else

puts("打开文件成败");

2.fclose()

fclose()的功能就是关闭用fopen()打开的文件,其原型是:int fclose(FILE *fp);如果成功,返回0,失败返回EOF。

在程序结束时一定要记得关闭打开的文件,不然可能会造成数据丢失的情况,我以前就经常犯这样的毛病。

例:fclose(fp);

3.fputc()

向流写一个字符,原型是int fputc(int c, FILE *stream); 成功返回这个字符,失败返回EOF。

例:f

读取doc文件c语言程序,c语言程序中关于文件的操作.doc相关推荐

  1. C语言实现MATLAB 6.5中M文件的方法

    摘要:本文着重描述了运用MATLAB命令将M文件翻译为C语言程序,并修改为可直接调用的C语言函数的方法,使用该方法所需要注意的方法局限性和MATLAB版本差异的影响.运用该方法将能够使C语言能直接使用 ...

  2. c语言的多文件组织,c++中多文件的组织

    参考书目:visual c++ 入门经典 第七版 Ivor Horton著 第八章 根据书中例子学习使用类的多文件项目. 首先要将类CBox定义成一个连贯的整体,在CBox.H文件中写入相关的类定义, ...

  3. 解决Java程序在Linux系统中创建文件或者文件夹后权限不足的问题

    Tomcat 需要 8 以及以上 我在Java程序里面有很多生成文件的功能,比如用户上传文件.将数据生成xml文本等.我发现生成的文件权限全是:-rw-r-,而文件的拥有者是 root,这样就只有ro ...

  4. linux中查找find命令的程序文件,如何使用find命令在Linux中查找文件

    Linux Find命令是Linux系统管理员工具库中最强大的工具之一. Find是一个命令行实用程序,它允许您根据用户给定的表达式搜索目录层次结构中的文件和目录,并对每个匹配的文件应用用户指定的操作 ...

  5. linux怎样自动检查link文件_怎样理解和识别 Linux 中的文件类型 | Linux 中国

    众所周知,在 Linux 中一切皆为文件,包括硬盘和显卡等.在 Linux 中导航时,大部分的文件都是普通文件和目录文件.但是也有其他的类型,对应于 5 类不同的作用.因此,理解 Linux 中的文件 ...

  6. ll文件显示为?????_关于shell编程中的文件测试简单的操作实例

    谈一谈关于shell编程中的文件测试 Shell编程有时处理一个对象时,需要我们对对象进行测试. 只有符合要求的才采取下一步操作,这样做的好处可以避免程序出错. 这个测试的对象可以是文件.字符串.数字 ...

  7. java 获取文件扩展名_如何在Java中获取文件扩展名

    java 获取文件扩展名 Sometimes while working with files, we need to process them differently based on their ...

  8. linux18.04 英文文件夹,在Ubuntu 18.04 LTS中打开文件夹的6种方法

    在Ubuntu中打开文件夹是作为常规Ubuntu用户执行的基本任务之一.尽管有很多方法可以这样做,但是当访问系统上的文件夹时,我们都有选择的方式. 在本文中,我们将解释一些方法: 在文件管理器(Nau ...

  9. 解压文件到服务器是什么意思,linux中zip文件解压命令是什么

    linux中zip文件解压命令是什么 发布时间:2020-10-15 14:35:15 来源:亿速云 阅读:102 作者:小新 这篇文章给大家分享的是有关linux中zip文件解压命令是什么的内容.小 ...

  10. linux终端删除文件命令_如何在Linux终端中删除文件和目录

    linux终端删除文件命令 Fatmawati Achmad Zaenuri/Shutterstock.comFatmawati Achmad Zaenuri / Shutterstock.com T ...

最新文章

  1. 大学python选择题题库及答案_大学慕课用Python玩转数据题库及答案
  2. C++ 可以把变量当成函数用~~
  3. 列一下OOP规约,编程的时候共勉!别踏坑!
  4. .NET 动态脚本语言Script.NET系列文章汇总 非常精彩的应用举例
  5. PHP笔记-学生成绩例子
  6. 将浮点数转换为字符串
  7. 打破“信息孤岛”不能透支信息安全
  8. mysql查询多造一列_mysql某列多值查询_MySQL
  9. 王坚数博会演讲实录:“计算经济”是社会发展的新动力
  10. Dubbo限流方式源码阅读
  11. Office2010的故事 1、从精简版无法升级
  12. 世界所有国家国际域名英文缩写总结(转)
  13. MS17010(永恒之蓝)漏洞复现
  14. html段落简字前带繁字,简繁体字对照表,抄佛经的师兄们必藏
  15. centos7安装打印机 cups页面管理 java程序驱动打印程序
  16. 使用Quantlib,通过YTM计算债券净值
  17. 注册表中如何查找计算机名,怎么进行注册表搜索
  18. 远程控制软件开发_软件开发人员的远程工作
  19. eChars实现哈尔滨市区县地图展示
  20. SQL Server 数据库实验课第七周——授权:授予与收回

热门文章

  1. (转)谭志勇、赵微:区块链技术在中国商品交易市场的应用与发展
  2. (转)曹锋、宋天玮:区块链技术在证券市场中的应用探索
  3. 云计算的演进,“分布式云”会是终态吗
  4. ​云原生:重新定义云时代的技术标准 | 凌云时刻
  5. 中国存储系统的先行者郑纬民
  6. 灯火阑珊处,都市夜归人
  7. 【MTSP】基于matlab遗传算法求解多旅行商问题【含Matlab源码 1338期】
  8. 【情感识别】基于matlab GUI SVM语音情感识别【含Matlab源码 869期】
  9. 【单目标优化求解】基于matlab海洋捕食者算法(MPA)求解单目标问题【含Matlab源码 478期】
  10. pymysql.err.OperationalError: 1136, Column count doesn t match value count at row 1