博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C文件操作
阅读量:7039 次
发布时间:2019-06-28

本文共 1813 字,大约阅读时间需要 6 分钟。

1,概论

程序运行时,程序本身和数据一般都存放在内存中,程序运行结束后,存放在内存中的数据会被释放,如果长期保存程序运行所需的原始数据,或程序产生的结果数据,就必须以文件的形式存储到外部存储介质上.

2,C语言文件概述

1,文件与文件名  文件是指存放在外部存储介质上的数据集合.为标识一个文件,需要给每个文件定一个文件名,文件名一般格式,主文件名.[扩展名]2,文件分类  可以从不同的角度对文件进行分类,根据文件内容,可分为程序文件与数据文件,程序文件又可以分为源文件,目标文件,可执行文件.3,根据文件的存储形式:分为ascii和二进制文件.ascii码文件的每一个字节存储一个字符,便于对对字符进行处理,一般占用存储空间较多,而且需花费转换时间[ascii与二进制间互为转换]二进制文件,是把内存中的数据,原样输出到磁盘文件中,可以节省磁盘存储空间和ascii和二进制间互为转换时间.二进制文件中一个字节并对应一个字符,不能直接输出字符形式,不便于维护阅读.

3,文件读写,

读文件是指,将磁盘文件中的数据传送到内存的操作.写文件是指,将计算机内存中的数据向磁盘文件中传.构成文件的基本单元与流式文件C语言将文件看作是由一个个字符[ascii码文件],或字节组成的,将这种文件称作流式文件,在高级语言中组成文件的基本单位是记录,对文件操作的基本单位也是记录.

4,文件类型

每个被使用的文件都在内存中开辟一个区用来存放文件的相关信息,(文件名,状态,位置),这些信息保存在一个结构体类型变量中,FILE,结构体类型由系统定义;typedef struct{  int _fd; //文件描述符  int _cleft; //缓冲区中剩下的字符  int _mode; //文件操作  char *_nexttc; //下一个字符位置  char *_buff;  //文件缓冲区位置} FILE;

5,文件操作类型,结构体类型

定义FILE类型指针变量FILE指针类型变量定义  FILE *指针变量名;eg:FILE *fp;fp是一个指向FILE结构体的指针变量;可以使fp指向某个文件的结构体变量,从而通过该结构体变量中的文件信息来访问文件.

6,文件打开函数

fopen(),调用方式FILE *fp;fp=fopen(文件名,文件使用方式);^fp-->用户自定义的文件类型指针变量;文件的使用方式,具有特定含义的符合fopen函数功能:以指定的方式打开指定的文件,若操作成功,则返回一个指向该文件的指针,若打开文件时错误,返回NULL;  例如:FILE *fp;fp=fopen("/C/005/ruiy.dat","rw+");

7,文件的使用方式;

文件的操作模式基本字符[单独使用是对文本文件];r -->仅为读二打开,(只读文件)w-->仅为写打开, (建立新文件)a -->仅为添加而打开, (写旧文件)【注意】前面不是说了吗:C把文件看作是有一个ascii字符或一个二进制字符组成的.2,按二进制格式读写文件,字符方式+b;b辅助说明,按二进制格式读写文件.eg:fp=fopen("ruiy.dat","rb");

8,fclose

usage:int fclose(FILE *指针变量名);

功能:关闭文件指针所指向的文件,正常关闭了,函数返回值为0,失败则为非0;

fclose(fp);//关闭文件所指向的文件;

9,文件读写操作

单个字符操作读写函数,

fputc函数

一般调用形式:

fputc(字符常量或变量,文件指针);

功能:把指定字符存入文件指针所指向的文件中;

如果输出失败,则返回一个EOF,(-1);

EOF是在stdio.h头文件中的定义的符合常量,值为-1,

eg:fputc(ch,fp);

其中ch为字符变量,fp为文件指针,

含义,将ch的值输出到ftp所指向的文件中

fgetc函数;

一般调用形式,字符变量=fgetc(文件指针);

功能:从文件指针所指文件中读取一个字符赋给指定的字符变量,当遇到一个文件结束符,返回一个文件结束符标志

eg:ch=fgetc(fp);

posted on
2013-11-05 16:23 阅读(
...) 评论(
...)

转载于:https://www.cnblogs.com/ruiy/p/file.html

你可能感兴趣的文章
a demo for how to use QThread
查看>>
扩展欧几里德算法
查看>>
【原创】多字节版本下MFC控件处理字符集的BUG
查看>>
ntp服务器
查看>>
子线程中刷新了UI
查看>>
UIPopoverController事件分发
查看>>
记一次在线安装postgresql-9.4的问题
查看>>
zabbix/自动发现规则
查看>>
SQL Server 命令行操作
查看>>
当cpu飙升时,找出php中可能有问题的代码行
查看>>
独孤九剑与黑客编程
查看>>
【windows8开发】序
查看>>
NAT方式,宿主机无法ping通虚拟机
查看>>
RabbitMQ配置
查看>>
bzoj3654 图样图森破
查看>>
四则运算一
查看>>
用Javascript获取页面元素的位置
查看>>
electron 学习笔记
查看>>
vs 开发 qt 遇到 无法找到 Visual Studio 2010 的生成工具(平台工具集 =“v100”) 解决方案...
查看>>
Oracle死锁处理实例
查看>>