C语言文件操作零基础新手入门保姆级教程
文件操作概述
文件操作是指对文件进行读写、复制、移动、重命名等操作的过程。C语言中提供了丰富的文件操作函数,使得开发者可以轻松地实现文件的操作。
C语言文件操作的基本流程为:
- 打开文件
- 进行读/写操作
- 关闭文件
文件操作函数
- 打开文件
fopen()
函数用于打开文件,函数定义如下:
FILE *fopen(const char *filename, const char *mode);
filename
:要打开的文件名及路径mode
:文件打开的模式,常用的模式见下表:
模式 | 含义 |
---|---|
r | 以只读方式打开文件,文件必须存在 |
w | 以写方式打开文件,若文件不存在,创建该文件;若文件存在,清空文件信息 |
a | 以追加方式打开文件,若文件不存在,创建该文件;若文件存在,追加写入 |
rb | 以二进制方式读取文件 |
wb | 以二进制方式写入文件 |
ab | 以二进制方式追加文件 |
函数返回值:指向FILE
类型的指针。
示例代码:
FILE *fp;
fp = fopen("test.txt", "w+");
if (fp == NULL) {
printf("无法打开文件\n");
exit(1);
}
- 读写文件
fread()
函数用于从文件中读取数据,函数定义如下:
size_t fread(void *ptr, size_t size, size_t nmemb, FILE *stream);
ptr
:指向读取数据存储位置的指针size
:读取数据块的大小(单位字节)nmemb
:此次读取数据块的数量stream
:打开的文件指针
函数返回值:读取的数据块数量。
示例代码:
char buff[6];
fread(buff, 6, 1, fp);
fclose(fp);
printf("%s\n", buff);
fwrite()
函数用于将数据写入文件,函数定义如下:
size_t fwrite(const void *ptr, size_t size, size_t nmemb, FILE *stream);
ptr
:指向写入数据存储位置的指针size
:写入数据块的大小(单位字节)nmemb
:此次写入数据块的数量stream
:打开的文件指针
函数返回值:写入的数据块数量。
示例代码:
char buff[6] = "hello";
fwrite(buff, 6, 1, fp);
fclose(fp);
- 关闭文件
fclose()
函数用于关闭文件。
int fclose(FILE *stream);
stream
:打开的文件指针
函数返回值:关闭成功返回0,失败返回EOF(-1)。
示例代码:
fclose(fp);
文件操作示例
示例一:复制文件
此示例代码用于将源文件复制到目标文件。
#include <stdio.h>
#include <stdlib.h>
int main() {
FILE *fp1, *fp2;
char c;
// 打开源文件
fp1 = fopen("source.txt", "r");
if (fp1 == NULL) {
printf("无法打开源文件\n");
exit(1);
}
// 创建目标文件
fp2 = fopen("target.txt", "w+");
if (fp2 == NULL) {
printf("无法创建目标文件\n");
exit(1);
}
// 读取并写入数据
while ((c = fgetc(fp1)) != EOF) {
fputc(c, fp2);
}
// 关闭文件
fclose(fp1);
fclose(fp2);
printf("文件复制成功\n");
return 0;
}
示例二:统计文件中字符个数
此示例代码用于统计文件中字符的个数。
#include <stdio.h>
#include <stdlib.h>
int main() {
FILE *fp;
char c;
int count = 0;
// 打开文件
fp = fopen("test.txt", "r");
if (fp == NULL) {
printf("无法打开文件\n");
exit(1);
}
// 统计字符个数
while ((c = fgetc(fp)) != EOF) {
count++;
}
// 关闭文件
fclose(fp);
printf("文件中共有 %d 个字符\n", count);
return 0;
}
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C语言文件操作零基础新手入门保姆级教程 - Python技术站