在C语言中,文件操作是通过一组特定的函数来实现的,这些函数允许程序创建、读取、写入、修改和删除文件。以下是一些常用的文件操作函数及其示例代码,这些代码将详细解释每个函数的功能和用法。
1. fopen() - 打开文件
fopen() 函数用于打开一个文件,并返回一个指向该文件的文件指针。如果文件打开失败,则返回 NULL。
#include <stdio.h> int main() { FILE *fp; fp = fopen("example.txt", "w"); // 以写入模式打开文件 if (fp == NULL) { printf("Failed to open file\n"); return 1; } // ... 在这里进行文件操作 ... fclose(fp); // 记得关闭文件 return 0; }
2. fclose() - 关闭文件
fclose() 函数用于关闭一个已打开的文件。关闭文件是一个好习惯,因为它会释放文件所占用的所有资源。
3. fgetc() 和 fputc() - 读取和写入单个字符
fgetc() 函数从文件中读取一个字符,fputc() 函数将一个字符写入文件。
#include <stdio.h> int main() { FILE *fp; char ch; fp = fopen("example.txt", "w+"); // 以读写模式打开文件 if (fp == NULL) { printf("Failed to open file\n"); return 1; } // 写入字符 fputc('H', fp); fputc('i', fp); // 将文件指针重新定位到文件开头 rewind(fp); // 读取字符 ch = fgetc(fp); printf("%c\n", ch); // 输出: H ch = fgetc(fp); printf("%c\n", ch); // 输出: i fclose(fp); return 0; }
4. fgets() 和 fputs() - 读取和写入字符串
fgets() 函数从文件中读取一行字符串,fputs() 函数将一个字符串写入文件。
#include <stdio.h> int main() { FILE *fp; char line[100]; fp = fopen("example.txt", "w+"); // 以读写模式打开文件 if (fp == NULL) { printf("Failed to open file\n"); return 1; } // 写入字符串 fputs("Hello, World!\n", fp); // 将文件指针重新定位到文件开头 rewind(fp); // 读取字符串 fgets(line, sizeof(line), fp); printf("%s", line); // 输出: Hello, World!\n fclose(fp); return 0; }
5. fprintf() 和 fscanf() - 格式化输入/输出
fprintf() 函数用于将格式化的数据写入文件,fscanf() 函数用于从文件中读取格式化的数据。
#include <stdio.h> int main() { FILE *fp; int num = 123; fp = fopen("example.txt", "w+"); // 以读写模式打开文件 if (fp == NULL) { printf("Failed to open file\n"); return 1; } // 写入格式化的数据 fprintf(fp, "The number is: %d\n", num); // 将文件指针重新定位到文件开头 rewind(fp); // 读取格式化的数据(这里只是演示,因为文件内容已知) int read_num; fscanf(fp, "The number is: %d", &read_num); printf("Read number: %d\n", read_num); // 输出: Read number: 123 fclose(fp); return 0; }
6. fseek() 和 ftell() - 文件指针定位
fseek() 函数用于设置文件位置指针的位置,ftell() 函数返回当前文件位置指针的位置。
7. rewind() - 重置文件指针到文件开头
rewind() 函数将文件位置指针重新设置为文件的开头。这在多次读写同一文件时很有用。
以上代码示例仅展示了每个函数的基本用法,实际使用中可能需要根据具体需求进行更复杂的操作。同时,文件操作也可能涉及错误处理和资源管理等问题,因此在编写涉及文件操作的程序时,请务必注意这些问题。