第十三章学习笔记

1.函数  fopen。getc,putc,exit,fclose,fprintf,fscanf,fgets,fputs,rewind()? fseek,ftell,fflush,fgetpos,fsetpos,feof,ferror,ungetc,setvbuf,fread,fwrite.
2.如何使用C的表中IO函数处理文件。
3.文本模式和二级制模式:文本格式和二进制格式,缓冲和非缓冲IO。
4.使用既可以顺序存取文件又可以随机存取文件的函数。

1.文件:磁盘上的一段命名的存储区。
C中将文件看成是连续的字节序列。每一个字节都可以单独的读取。
c提供了两种视图:文本视图和 二进制视图。


2.IO级别
 标准输入输出:大多使用键盘:使用get char,gets,scanf进行du'q读取。putchar,puts,printf 输出。
命令行参数的输入和输出。
  return和exit的区别。

3.fopen函数。

fopen(“文件绝对路径或者相对路径”,“code”)
code:
"r":      打开一个文件,可以读取文件内容
“w”:打开一个文件,清空之后 -》可以写入文件。如果不存在文件需要先创建。
“a”:打开一个文件,在文件末尾追加内容,如果不存在,创建。
“r+”:打开一个文件,进行更新,读取或者写入。
“w+”:打开一个文件,清空之后对其 更新,读取和写入,不存在则创建。
“a+”:打开一个文件,更新,读取和写入。追加内容,不存在则创建。
“rb,wb,ab,ab+,a+b,wb+,w+b,ab+,a+b”类同,只是以二进制的形式读取文件。

3.getc和putc函数:需要告知getc和putc函数他们所使用的文件。
和get char,put char非常类似:bu't不需要告知使用什么文件。

举例如下:
ch = get char()     == ch  getc(fp);
put char(ch)   == putc(ch,stdout);
putc(ch,fpout):将ch写入flout制定的文件中

使用putc函数很容易将屏幕输出改为文件输出。

4.文件结尾:尝试读入字符的时候发现已经到了文件结尾,getc函数就会返回一个特殊值EOF。 避免读空文件,进入入口循环。dowhile。

5.fclose函数:
if(fclose(fp)!= 0)
printf();
6.标准文件指针。


7.文件IO:fprintf,scanf,fgets,fputs。
1)fprintf,fscanf 和rewind 的搭配使用。

rewind():回到文件的开始处,便于进行读写。


8.fgets和fputs函数

fgets(char* buf,MAX,fp) MAX:表示可输入字符串的最大地址。
fputs()

9.gets和fgets
fgets()函数可以防止内存溢出。

顺序访问
=====
随机访问
10.随机读取:fseek和ftell函数。
 
fseek函数允许你想对待数组那样对待一个文件,fopen打开的文件直接移动到任意字节出。

int fseek( FILE *stream, long offset, int origin );  成功返回0,否则返回-1.

seek(fp,0L,seek_END);//定位到文件结尾处。
SEEK_SET: 文件开头
SEEK_CUR: 当前位置
SEEK_END: 文件结尾


ftell():返回当前文件位置,也就是说返回FILE指针当前位置。
long ftell(FILE *fp);


putchar('\n');
fclose(fp);
return 0 ;
}

11.fseek和ftell如何工作。

ftell 为long类型,返回文件的当前位置。

12.其他的标准io函数

13.二进制IO:fread和fwrite函数。:存取没有数字和字符串的形式转换。
1)size_t write函数
size_t fwrite(const void restrict ptr,size_t size,size_t nmemb,FILE* restrict fp);

const void restrict ptr:    要写入的数据块的地址。
,size_t size:要写入的数据块的大小
size_t nmemb:数据块的数目 
FILE* restrict fp: 指定要写入的文件。

char buffer[256];
fwrite(buffer,256,1,fp);
将256字节大小的数据块从缓冲区写入到文件。

2)size_t fread函数
size_t fread(void * restrict ptr,size_t size,size_t nmemb,FILE * restrict fp);

ptr:要读入的文件数据的内存存储地址。
fp:要读入的文件。

 

 

14. int feof(FILE* fp)和 int ferror(FILE* fp)函数。
int feof(FILE* fp):文件到达末尾
 int ferror(FILE* fp):文件出现了错误。

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值