【C语言】文件的读取和写入

【C语言】文件的读取和写入

在C语言中,可以使用标准库函数来进行文件的读取和写入。这些函数通常被称为文件I/O函数,其中包括打开文件、读取文件、写入文件和关闭文件等操作。

1、打开文件

要打开一个文件,需要使用标准库函数fopen。fopen函数的原型如下:

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

其中,filename是要打开的文件名,mode是打开文件的模式。mode可以是以下值之一:

“r”:只读模式,从文件开头读取数据,如果文件不存在则返回NULL;
“w”:写入模式,如果文件不存在则创建文件,如果文件已经存在则清空文件中的数据;
“a”:追加模式,从文件末尾写入数据,如果文件不存在则创建文件;
“r+”:读写模式,从文件开头读取数据,并可以在文件中写入数据,如果文件不存在则返回NULL;
“w+”:读写模式,如果文件不存在则创建文件,如果文件已经存在则清空文件中的数据;
“a+”:读写模式,从文件末尾写入数据,并可以在文件中读取数据,如果文件不存在则创建文件。
fopen函数返回一个指向FILE结构体的指针。该指针用于后续的文件I/O操作。例如,以下代码打开一个名为example.txt的文件进行读取:

FILE *fp;
fp = fopen("example.txt", "r");
if (fp == NULL) {
    printf("Failed to open file\n");
    return -1;
}

2、读取文件

要从文件中读取数据,可以使用标准库函数fread。fread函数的原型如下:

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

其中,ptr是一个指向要读取数据的缓冲区的指针,size是每个元素的大小,count是要读取的元素数量,stream是指向要读取的文件的指针。fread函数返回实际读取的元素数量。例如,以下代码从文件中读取10个整数:

int arr[10];
size_t num = fread(arr, sizeof(int), 10, fp);

3、写入文件

要将数据写入文件,可以使用标准库函数fwrite。fwrite函数的原型如下:

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

其中,ptr是一个指向要写入数据的缓冲区的指针,size是每个元素的大小,count是要写入的元素数量,stream是指向要写入的文件的指针。fwrite函数返回实际写入的元素数量。例如,以下代码将10个整数写入文件:

int arr[10] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
size_t num = fwrite(arr, sizeof(int), 10, fp);

需要注意的是,在写入文件时,要确保要写入的数据的大小和数量与要写入的文件的大小和位置相匹配。否则,可能会导致数据丢失或文件损坏。

4、关闭文件

使用完文件之后,需要调用fclose函数关闭文件。fclose函数的原型如下:

int fclose(FILE *stream);

其中,stream是指向要关闭的文件的指针。fclose函数返回0表示成功关闭文件,返回EOF表示关闭文件失败。例如,以下代码关闭文件:

int ret = fclose(fp);
if (ret != 0) {
    printf("Failed to close file\n");
    return -1;
}

需要注意的是,在进行文件I/O操作之前,应该检查函数的返回值,以确保操作成功。如果操作失败,需要根据具体情况进行错误处理。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值