一、笔记
(一)I/O库函数
I/O库函数是在C和C++编程中广泛使用的文件操作函数,用于进行输入和输出操作。它们是构建在系统调用之上的高级接口,提供了更方便和高效的文件操作方法。
(二)I/O库函数与系统调用
I/O库函数与系统调用密切相关,它们封装了底层的系统调用,提供了更高级别、更易用的接口。下面是一些常见的I/O库函数与对应的系统调用:
打开和关闭文件:
fopen / open:打开文件
fclose / close:关闭文件
读写文件:
fread / read:从文件读取数据
fwrite / write:向文件写入数据
(三)I/O库函数的算法
fread/fwrite函数:
fread函数用于从文件中读取指定数量的数据
fwrite函数用于将指定数量的数据写入文件
(四)I/O模式库
C语言提供了字符模式I/O函数,用于以字符为单位进行文件操作,除了二进制模式的I/O。这些函数包括:
- fgetc(FILE *fp):从文件中读取一个字符并返回其ASCII码值。通常,EOF(文件结束符)用于表示文件的末尾。
- ungetc(int c, FILE *fp):将之前通过fgetc()获取的字符重新放回流中,以便之后再次读取。
- fputc(int c, FILE *fp):将字符写入文件中。
这些函数主要用于文本文件的读取和写入操作,而不是二进制数据。此外,还有其他一些有用的I/O库函数,包括: - fseek()、ftell()、rewind():用于更改文件流中的读/写字节位置和获取当前位置,以及将文件指针重置为文件的开头。
- feof()、ferror()、fileno():用于测试文件流的状态,检查文件是否到达末尾或发生错误,以及获取文件描述符。
- fdopen():用于使用文件描述符打开文件流。
- freopen():以新名称重新打开现有的流。
- setbuf()、setvbuf():用于设置文件流的缓冲方案。
- popen():用于创建管道,复刻子进程来调用shell。
(五)文件流缓冲 - 全缓冲(Fully Buffered):当缓冲区被填满时,数据才会被写入文件或从文件中读取。可以使用setvbuf()函数将文件流设置为全缓冲模式。
- 行缓冲(Line Buffered):当遇到换行符时,或者缓冲区被填满时,数据会被写入文件或从文件中读取。可以使用setvbuf()函数将文件流设置为行缓冲模式。
- 无缓冲(Unbuffered):每次进行文件读写操作时,数据会立即被写入文件或从文件中读取,不使用缓冲区。可以使用setvbuf()函数将文件流设置为无缓冲模式。
二、苏格拉底挑战
三、实践
(1)使用文件函数将文档1内容复制到文档2
代码
文件一内容
操作后文件二内容
(2)将小写字母改成大写字母
代码
操作后文件二内容
四、问题
在输入命令行当中,发现运行不了编译好的C语言文件
寻求GPT帮助
最后发现是退出插入模式时输入的是:q!强制退出没有保存原文件