问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

C语言文件操作详解

创作时间:
作者:
@小白创作中心

C语言文件操作详解

引用
CSDN
1.
https://blog.csdn.net/qq_59527512/article/details/136782816

C语言文件操作

头文件

在进行C语言文件操作之前,需要包含标准输入输出头文件:

#include <stdio.h>

打开、创建文件

使用fopen()函数来打开或创建文件。该函数运行后会产生一个文件指针(FILE *指针名)。

函数原型:

FILE *fopen(const char *filename, const char *mode);

参数说明:

  • 参数1(filename):

  • 填入相对路径(在工作路径找)及文件名加后缀

  • 填入绝对路径(路径+文件名+后缀)

  • 参数2(mode):

  • "r":只读方式打开文件,文件必须存在。

  • "w":只写方式打开文件,如果文件存在则清空,不存在则创建。

  • "a":追加方式打开文件,写入的数据会被添加到文件末尾,不存在则创建。

  • "r+":读写方式打开文件,文件必须存在。

  • "w+":读写方式打开文件,如果文件存在则清空,不存在则创建。

  • "a+":读写追加方式打开文件,不存在则创建。

示例代码:

#include <stdio.h>
int main(){
    FILE *fp = fopen("example.txt", "a+");
    if (fp == NULL)
    {
        perror("文件格式错误");
        return -1;
    }
}

关闭文件

使用fclose()函数来关闭一个已经打开的文件。关闭文件可以释放系统资源,确保数据正确写入。关闭成功会返回一个0。

函数原型:

int fclose(FILE *stream);

文件的读写

  • fputc() 或 putc():写一个字符到文件
  • fgetc() 或 getc():从文件读取一个字符。错误返回EOF(End Of File)
  • 由于fgetc()和getc()都会移动文件指针,所以连续调用这两个函数会依次读取文件中的下一个字符。

  • fputs():写一个字符串到文件。
  • fgets():从文件读取一个字符串。错误返回NULL

函数原型:

char *fgets(char *str, int n, FILE *stream);

参数说明:

  • str:指向一个字符数组的指针,该数组用于存储从文件流中读取的字符串。
  • n:要读取的最大字符数(包括最后的空字符 \0)。这意味着fgets()最多会读取n-1个字符,然后在末尾添加一个空字符来终止字符串。

  • stream:指向文件流的指针,该文件流应该是以读取模式打开的。

文本中字符位置指针

  • fseek():根据文件指针的当前位置移动到文件中的指定位置。

函数原型:

int fseek(FILE *stream, long int offset, int whence);

参数说明:

  • stream:指向文件流的指针,这个文件流应该是已经打开的。

  • offset:要移动的偏移量,以字节为单位。如果是正数,文件指针向前移动;如果是负数,文件指针向后移动。

  • whence:定义了偏移量的起始点,可以是以下三个宏之一:

  • SEEK_SET:文件的开始。

  • SEEK_CUR:文件指针的当前位置。

  • SEEK_END:文件的末尾。

  • ftell():返回文件指针的当前位置。

  • rewind():将文件指针重置到文件的开始位置。

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号