1. IO的接口分类:
- 普通文件:标准IO
有缓存的IO
- 设备文件、通信文件:文件IO
没有缓存的IO
- 目录文件:目录IO
2. 普通文件:
ASCII码文件:文件中存放的内容均为能够在终端显示的ASCII码字符代码、文本文件
(fputc/fgetc, fputs/fgets, fscanf/fprintf)
二进制文件:存放二进制数据的文件音视频、图片、压缩包..(fread/fwrite)
注意:ASCII码文件是一种特殊的二进制文件。
3.二进制文件的拷贝
拷贝功能:打开两个文件流,要有一个缓存区
fread(存储读取数据的缓冲区, 单个元素的字节大小, 要读取的元素个数, 源文件流);
fwrite(待写入的缓冲区, 单个元素的字节大小, 要写入的元素个数, 目标文件流);
注:sizeof(scr[0]):单个元素字节数;sizeof(scr):数组总字节数
fread/fwrite总读写字节数 = size × nmemb
为保持拷贝前与拷贝后完全一致,就一个字节的读取,写入读取的返回值。
关于路径接收时:
- gets:读取到用户输入的
\n(回车)时,将\n变为\0(字符串结束符); - fgets:读取到
\n时,在\n后面添加\0,最终缓冲区里会包含\n。
。

这张图片好看,留下来了~
今天的作业有点难,但是我居然写出来了,虽然需要在堆区开辟的字节空间大小处理的很潦草,中途还因为对strncmp的功能理解反了,但是最后完成的感觉还不错~
吃了个魏斯理的牛肉汉堡好油腻~