- C 语言文件输入/输出(I/O)函数大全
- 1.
fopen()
函数 - 2.
fclose()
函数 - 3.
fread()
函数 - 4.
fwrite()
函数 - 5.
fseek()
函数 - 6.
ftell()
函数 - 7.
rewind()
函数 - 8.
feof()
函数 - 9.
ferror()
函数 - 10.
clearerr()
函数
😊
- 1.
C 语言文件输入/输出(I/O)函数大全
C 语言提供了一系列的文件输入/输出(I/O)函数,用于读取和写入文件,这些函数非常重要且广泛应用于各种程序中。在本文中,我们将详细介绍 C 语言中的文件 I/O 函数,并提供每个函数的简介、使用示例和注意事项。
1. fopen()
函数
fopen()
函数用于打开一个文件,返回一个 FILE 指针。它的模式参数可以是以下几种:
r
:只读模式w
:写入模式a
:追加模式rb
、wb
、ab
:以二进制方式打开文件
示例代码:
FILE *fp = fopen("example.txt", "r");
if (fp == NULL) {
printf("无法打开文件\n");
} else {
fclose(fp);
}
2. fclose()
函数
fclose()
函数用于关闭一个已经打开的文件。
示例代码:
FILE *fp = fopen("example.txt", "w");
fprintf(fp, "Hello World!\n");
fclose(fp);
3. fread()
函数
fread()
函数用于从文件中读取数据,返回读取的字节数。
示例代码:
FILE *fp = fopen("image.jpg", "rb");
char buffer[10];
int bytesRead = fread(buffer, 1, 10, fp);
if (bytesRead == 0) {
printf("读取失败\n");
} else {
// 处理读取的数据
}
fclose(fp);
4. fwrite()
函数
fwrite()
函数用于将数据写入到文件中,返回写入的字节数。
示例代码:
FILE *fp = fopen("data.txt", "wb");
int data[] = {1, 2, 3, 4};
size_t bytesWritten = fwrite(data, sizeof(int), 4, fp);
if (bytesWritten != 4) {
printf("写入失败\n");
} else {
fclose(fp);
}
5. fseek()
函数
fseek()
函数用于将文件指针移动到指定位置。
示例代码:
FILE *fp = fopen("example.txt", "r");
fseek(fp, 10, SEEK_SET); // 将文件指针移到第 10 个字节
int c;
if (fscanf(fp, "%c", &c) == 1) {
printf("读取的字符是 %c\n", c);
} else {
printf("读取失败\n");
}
fclose(fp);
6. ftell()
函数
ftell()
函数用于获取当前文件指针的位置。
示例代码:
FILE *fp = fopen("example.txt", "r");
int pos = ftell(fp); // 获取当前文件指针的位置
printf("当前文件指针位置是 %d\n", pos);
fclose(fp);
7. rewind()
函数
rewind()
函数用于将文件指针回退到起始位置。
示例代码:
FILE *fp = fopen("example.txt", "r");
fread(buffer, 1, 10, fp); // 读取前 10 个字节
rewind(fp); // 将文件指针回退到起始位置
fseek(fp, 10, SEEK_SET); // 将文件指针移到第 10 个字节
fclose(fp);
8. feof()
函数
feof()
函数用于检测是否已经达到了文件末尾。
示例代码:
FILE *fp = fopen("example.txt", "r");
int c;
while ((c = fgetc(fp)) != EOF) {
printf("%c", c);
}
if (feof(fp)) {
printf("已经达到了文件末尾\n");
} else {
printf("文件读取错误\n");
}
fclose(fp);
9. ferror()
函数
ferror()
函数用于检测是否在打开文件时发生了错误。
示例代码:
FILE *fp = fopen("non_existent_file.txt", "r");
if (ferror(fp)) {
printf("打开文件时发生错误\n");
} else {
printf("打开文件成功\n");
}
fclose(fp);
10. clearerr()
函数
clearerr()
函数用于清除文件读写错误。
示例代码:
FILE *fp = fopen("example.txt", "r");
if (ferror(fp)) {
clearerr(fp); // 清除文件读写错误
printf("清除了文件读写错误\n");
} else {
printf("没有文件读写错误\n");
}
fclose(fp);
以上是 C 语言中常用的文件输入/输出(I/O)函数的总结和使用示例。这些函数非常重要且广泛应用于各种程序中,我们在编写程序时应该熟悉它们的用法。