1.标准输入输出库函数
#include<stdio.h>
标准输入输出库,位置在/usr/include/stdio.h
stdio.h-->stdio.c-->libc.so (so动态库文件/usr/lib)
FILE 结构定义的对象 FILE * 称之为流对象,也叫文件流指针
2.fopen函数
FILE *fopen(const char *path, const char *mode);
mode:这是一个指向字符串的指针,表示打开文件的模式。
"r":以只读方式打开文件。文件必须存在。
"r+":以读写方式打开文件。文件必须存在。
"w":以写入方式打开文件。如果文件不存在则创建文件,如果文件存在则清空文件内容。
"w+":以读写方式打开文件。如果文件不存在则创建文件,如果文件存在则清空文件内容。
"a":以追加方式打开文件。如果文件不存在则创建文件,如果文件存在则在文件末尾追加数据。
"a+":以读写方式打开文件。如果文件不存在则创建文件,如果文件存在则在文件末尾追加数据
返回值
成功时:返回一个指向 FILE
类型的指针,表示已打开的文件。
失败时:返回 NULL
,并设置全局变量 error
以指示错误原因
3.fputc函数
int fputc(int char, FILE *stream);
成功时返回写入的字符,失败时返回 EOF
并设置错误标志
4.fgetc函数
int fgetc(FILE *stream);
成功时返回读取的字符,若到达文件末尾或发生错误则返回 EOF
5.fputs函数
int fputs(const char *str, FILE *stream);
const char *str指的是要写入的字符串
FILE *stream要填需要写入的位置(地址)
成功时返回一个非负值,失败时返回 EOF
6.fgets函数
char *fgets(char *str, int n, FILE *stream);
char *str
:用于存储读取字符串的字符数组指针。
int n
:指定读取的最大字符数(包括终止符 \0
)。
FILE stream
:指向要读取的文件的文件指针。
成功时返回 str
,若到达文件末尾或发生错误则返回 NULL
要注意的是fgets和fputs只能对文本文档进行操作
7.fread函数与fwrite函数
size_t fread(void *ptr, size_t size, size_t count, FILE *stream);
size_t fwrite(const void *ptr, size_t size, size_t count, FILE *stream);
ptr
:指向存储读取或写入数据的内存块。
size
:每个数据块的大小,以字节为单位。
count
:要读取或写入的块的数量。
stream
:指向要读取或写入的文件的文件指针。
返回成功读取的块数。如果返回值小于 count
,则可能发生了错误或者到达了文件末尾
8.标准的输入输出 stdin stdout stdeer
stdin 是标准输入流,通常与键盘输入关联。程序从 stdin 读取数据,常用于接受用户输入。
stdout 是标准输出流,通常与显示器(终端)输出关联。程序通过 stdout 将结果输出到屏幕。
stderr 是标准错误流,通常用于输出错误信息,默认也与显示器(终端)关联。与 stdout 不同,stderr 通常不会被重定向到文件,因此适合输出错误信息