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

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

一 ASCII(文本)文件、二进制文件:文本文件每个字符为一个字节,占用空间大,速度慢(需要由二进制文件转换),优点在于便于对字符的操作;二进制文件多用于即需要输入到内存又要暂存在外存上。C语言将文件看做是字符流或二进制流数据(字符/字节)的集合。

二缓冲/非缓冲文件:在unix中,缓冲文件(高级I/o)文件用于处理文本,非缓冲文件用于二进制文件。C语言对文本和二进制文件都采用缓冲文件,即用户数据和磁盘数据之间都是通过内存缓冲文件来进行的,因而对文件操作后必须用fclose(*p)关闭文件:将缓冲区的数据送到磁盘后关闭文件,释放文件指针,防止对文件的误操作。

三文件指针:是在stdio.h定义的结构体变量,因缓冲文件的特性而在内存中开辟一个区间来存放关于文件的有关信息。

四 3个标准文件:系统运行自动打开stdin stdout stderr三个标准文件

五:fputc putc putchar的关系(同理fgetc getchar getc):

  fputc( char,fp)将字符写到磁盘;putchar是用宏定义且输出为标准输出终端(显示器)的特殊fputc:#define putchar(char) fputc(char,stdout) 其中stdout是系统定义的文件指针变量,与输出中相连(系统将所有的终端都看做是指针);putc是fputc的简化写法:#define putc(char,fp) fputc( char,fp).

六 :文件结束标志与顺序读取:EOF与feof(fp):

  文件文件常用EOF=-1代替文件结束,但二进制文件中的-1无法区分究竟是文件结束标志还是真正的有效数据-1,所有用feof(fp)=1来表示二进制文件的结束。当然feof(fp)也使用于文件文件,但最好用操作类型(是否带b)加以区分。

6.1顺序读取文本文件:                                              6.2 顺序读取二进制文件:

{char=fgetc(fp);                   while(!foef(fp))

while(EOF!=char)                   { char=fgetc(fp)

{                            ......

  putchar=char;                                                     }

  char=fgetc(fp);

}

7相关函数:

7.1 文件打开:fopen("filename",操作方式)

7.2 文件关闭:fclose(fp)

7.3 文件定位:rewind(fp)//定位到文件开头

       fseek(fp,offset偏移量,source源位置)//实现随机文件定位输出。source={0=开头,1=当前,2=结尾}

         ftell(fp)          //返回当前文件指针的位置,-1L表示处处(加L表示常整形)

7.4 文件读写:fputc(char,fp)putchar()  putc()    fputs() putw()操作一个字

       fgetc(char,fp)getchar()  getc()    fgets()  getw()

            fread(*buff,size,cout,fp)/fwrite(*buff,size,cout,fp)    //数据块操作

       fscanf(格式控制符,输入列表)/fprintf(格式控制符,输出列表)//从磁盘输入 向磁盘输出

7.5 文件状态: feof(fp)=1表示文件正常结束

        ferr(fp) =0 表示文件没有出错

        clearerr()        //给feof和ferr清0

 

转载于:https://www.cnblogs.com/jieruishu/p/3870605.html

你可能感兴趣的文章
构建之法阅读笔记02
查看>>
初学差分约束
查看>>
HEVC编码学习(一)HM配置
查看>>
通过Spark SQL关联查询两个HDFS上的文件操作
查看>>
DataTable和 DataRow的 区别与联系
查看>>
检索COM 类工厂中CLSID 为 {00024500-0000-0000-C000-000000000046}的组件时失败
查看>>
mysql数据库中数据类型
查看>>
Fireworks基本使用
查看>>
两台电脑间的消息传输
查看>>
Linux 标准 I/O 库
查看>>
.net Tuple特性
查看>>
Java基础常见英语词汇
查看>>
iOS并发编程笔记【转】
查看>>
08号团队-团队任务5:项目总结会
查看>>
SQL2005 删除空白行null
查看>>
lightoj 1030 概率dp
查看>>
mysql备份与恢复
查看>>
混沌分形之迭代函数系统(IFS)
查看>>
边框圆角Css
查看>>
使用Busybox制作根文件系统
查看>>