读写文件:fopen
fopen
系列函数是 C 标准库中的文件操作 API,用于打开、读取、写入和关闭文件。这些函数为文件操作提供了简单的接口。
-
fopen
函数:打开文件,返回一个指向FILE
结构的指针,这个指针用于后续的文件操作。FILE *fopen(const char *filename, const char *mode); // filename: 文件名的字符串,指定要打开的文件路径。 // mode: 文件打开模式,用于指定文件的打开方式(如只读、只写、追加等)。 // "r": 以只读模式打开文件。文件必须存在。 // "w": 以只写模式打开文件。如果文件不存在,则创建该文件;如果文件已存在,则清空文件内容。 // "a": 以追加模式打开文件。如果文件不存在,则创建该文件;如果文件已存在,则将数据追加到文件末尾。 // "r+": 以读写模式打开文件。文件必须存在。 // "w+": 以读写模式打开文件。如果文件不存在,则创建该文件;如果文件已存在,则清空文件内容。 // "a+": 以读写模式打开文件。如果文件不存在,则创建该文件;如果文件已存在,数据将被追加到文件末尾。
-
fgets
函数:从文件中读取一行,存储到指定的缓冲区中。char* fgets(char *str, int n, FILE *stream); // str: 指向存储读取数据的字符数组的指针。 // n: 要读取的字符数(包括终止符 \0)。fgets 最多读取 n-1 个字符,并自动在末尾添加 \0 终止符。 // stream: 指向已打开的文件的 FILE 指针。 // 返回 str 指针,如果遇到文件结束或发生错误,则返回 NULL。
-
fwrite
函数:将数据写入到文件。size_t fwrite(const void *ptr, size_t size, size_t count, FILE *stream); // ptr: 指向要写入的数据的指针。 // size: 每个数据项的大小,以字节为单位。 // count: 要写入的项数。 // stream: 指向已打开的文件的 FILE 指针。 // 返回值是成功写入的项数。如果返回值小于 count,则可能发生了错误。
-
fread
函数:用于从文件中读取数据。size_t fread(void *ptr, size_t size, size_t count, FILE *stream);
-
ptr
: 指向存储读取数据的缓冲区。 -
size
: 每个数据项的大小,以字节为单位。 -
count
: 要读取的项数。 -
stream
: 指向已打开的文件的FILE
指针。 -
返回值是成功读取的项数。如果返回值小于
count
,则可能遇到文件结尾或发生了错误。
-
-
fseek
函数:用于移动文件指针到指定位置。int fseek(FILE *stream, long offset, int whence);
-
stream
: 指向已打开的文件的FILE
指针。 -
offset
: 偏移量,以字节为单位。 -
whence
: 参考位置,可以是以下值之一:SEEK_SET
: 文件开头。SEEK_CUR
: 当前文件指针位置。SEEK_END
: 文件末尾。
-
返回值为
0
表示成功,非零
表示失败。
-
-
fclose
:用于关闭文件并释放与文件相关的资源。int fclose(FILE *stream);
-
stream
: 指向要关闭的文件的FILE
指针。 -
fclose
成功关闭文件时返回0
,如果发生错误,返回EOF
。
-