【笔记】文件读写(C语言)

C语言读写函数有哪些

目录
1.fopen:用于打开文件,并返回一个文件指针。
2.fclose:用于关闭已打开的文件。
3.fgetc:从文件中读取一个字符。
4.fgets:从文件中读取一行数据。
5.fscanf:从文件中按照指定的格式读取数据。
6.fread:从文件中读取指定数量的数据块。
7.fwrite:将指定数据块写入文件。
8.fprintf:将格式化的数据写入文件。
9.fputs:将一个字符串写入文件。
10.fseek:设置文件指针的位置。
11.ftell:返回当前文件指针的位置。
12.rewind:将文件指针重新定位到文件的开头。

1.fopen:用于打开文件,并返回一个文件指针。

FILE *fopen(const char *filename, const char *mode);
FILE *fopen(打开文件地址/名字(默认地址为程序地址),读写模式)

示例

FILE *fp = fopen("file.txt", "r"); 
// 打开名为file.txt的文件进行读取
模式描述
r打开一个已有的文本文件,允许读取文件。
w打开一个文本文件,允许写入文件。如果文件不存在,则会创建一个新文件。在这里,您的程序会从文件的开头写入内容。如果文件存在,则该会被截断为零长度,重新写入。
a打开一个文本文件,以追加模式写入文件。如果文件不存在,则会创建一个新文件。在这里,您的程序会在已有的文件内容中追加内容。
r+打开一个文本文件,允许读写文件。
w+打开一个文本文件,允许读写文件。如果文件已存在,则文件会被截断为零长度,如果文件不存在,则会创建一个新文件。
a+打开一个文本文件,允许读写文件。如果文件不存在,则会创建一个新文件。读取会从文件的开头开始,写入则只能是追加模式。

如果处理的是二进制文件,则需使用下面的访问模式来取代上面的访问模式:

“rb”, “wb”, “ab”, “rb+”, “r+b”, “wb+”, “w+b”, “ab+”, “a+b”


2.fclose:用于关闭已打开的文件。

int fclose(FILE *stream);

示例

fclose(fp); // 关闭文件指针fp所指向的文件

3.fgetc:从文件中读取一个字符。

int fgetc(FILE *stream);

示例

char ch = fgetc(fp); 
// 从文件指针fp所指向的文件中读取一个字符,并存储在变量ch中

4.fgets:从文件中读取一行数据。

fgetc() 函数从 fp 所指向的输入文件中读取一个字符。返回值是读取的字符,如果发生错误则返回 EOF。下面的函数允许您从流中读取一个字符串:
char *fgets(char *str, int n, FILE *stream);

示例

char *fgets( char *buf, int n, FILE *fp );
fgets(buffer, 100, fp); 
// 从文件指针fp所指向的文件中读取一行数据,
//最多读取99个字符(第100个位置用于存储字符串结尾符'\0'),
//并存储在缓冲区buffer中

5.fscanf:从文件中按照指定的格式读取数据。

int fscanf(FILE *stream, const char *format, …);
示例

int a, b;  
fscanf(fp, "%d %d", &a, &b);
 //从文件指针fp所指向的文件中按照指定格式读取两个整数,
 //并存储在变量a和b中

实例代码

#include <stdio.h>  
int main() {  
    FILE *fp;  
    int num1, num2, num3;  
    float avg;  
    // 打开文件  
    fp = fopen("data.txt", "r");  
    if (fp == NULL) {  
        printf("Failed to open file.\n");  
        return 1;  
    }  
    // 从文件中读取格式化数据  
    fscanf(fp, "%d %d %d", &num1, &num2, &num3);  
    fscanf(fp, "%f", &avg);  
    // 输出读取的数据  
    printf("num1 = %d, num2 = %d, num3 = %d\n", num1, num2, num3);  
    printf("avg = %.2f\n", avg);  
    // 关闭文件  
    fclose(fp);  
    return 0;  
}

6.fread:从文件中读取指定数量的数据块。

size_t fread(void *ptr, size_t size, size_t count, FILE *stream);

ptr:一个指向存储读取数据的内存区域的指针。
size:要读取的每个数据项的大小,以字节为单位。
count:要读取的数据项数量。
stream:指向 FILE 对象的指针,该对象指定了一个输入流。

示例

int data[5];  
fread(data, sizeof(int), 5, fp); 
// 从文件指针fp所指向的文件中读取5个整数,并存储在数组data中

7.fwrite:将指定数据块写入文件。

fwrite(buffer, size, count, fp);

示例

char buffer[100] = "Hello, World!";  
fwrite(buffer, sizeof(char), 100, fp); 
// 将缓冲区buffer中的100个字符写入文件指针fp所指向的文件中
8.fprintf:将格式化的数据写入文件。

int fprintf(FILE *stream, const char *format, …);

示例

int a = 10;  
fprintf(fp, "a = %d", a); // 将格式化的数据写入文件指针fp所指向的文件,输出为"a = 10"
9.fputs:将一个字符串写入文件。

int fputs(const char *str, FILE *stream);

示例

fputs("Hello, World!", fp); 
// 将字符串"Hello, World!"写入文件指针fp所指向的文件
10.fseek:设置文件指针的位置。

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

示例

fseek(fp, 10, SEEK_SET); 
// 将文件指针fp所指向的文件位置设置为从文件开头开始的10个字节处
11.ftell:返回当前文件指针的位置。

long ftell(FILE *stream);

示例

long pos = ftell(fp); 
// 获取文件指针fp所指向的文件当前位置,并存储在变量pos中
12.rewind:将文件指针重新定位到文件的开头。**

void rewind(FILE *stream);

rewind(fp); 
// 将文件指针fp所指向的文件位置重新定位到文件的开头
  • 30
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值