在C语言中,文件读写操作通常使用标准输入输出库(stdio.h)提供的函数来完成。以下是一些基本的文件读写操作示例:
### 文件打开与关闭
打开文件:
```c
#include <stdio.h>
FILE *fp;
fp = fopen("filename.txt", "r"); // 打开文件用于读取(只读模式)
if (fp == NULL) {
perror("Error opening file");
exit(1);
}
```
打开文件(写入模式):
```c
fp = fopen("filename.txt", "w"); // 打开文件用于写入(只写模式)
if (fp == NULL) {
perror("Error opening file");
exit(1);
}
```
打开文件(读写模式):
```c
fp = fopen("filename.txt", "r+"); // 打开文件用于读写
if (fp == NULL) {
perror("Error opening file");
exit(1);
}
```
关闭文件:
```c
if (fclose(fp) != 0) {
perror("Error closing file");
exit(1);
}
```
### 文件读取
读取整个文件:
```c
char buffer[100];
fread(buffer, 1, sizeof(buffer), fp);
// 处理读取到的数据
```
按行读取文件(假设文件是文本格式):
```c
char line[100];
while (fgets(line, sizeof(line), fp) != NULL) {
// 处理每一行数据
}
```
读取指定长度的字符串:
```c
char str[10];
fgets(str, 10, fp); // 读取最多9个字符,加上换行符
```
### 文件写入
写入数据到文件:
```c
fprintf(fp, "Hello, world!\n"); // 向文件中写入字符串
```
写入整个数组到文件:
```c
int numbers[] = {1, 2, 3, 4, 5};
fwrite(numbers, sizeof(int), 5, fp); // 写入5个整数
```
### 文件定位
定位到文件开头:
```c
fseek(fp, 0, SEEK_SET); // 设置文件指针到文件开头
```
定位到文件末尾:
```c
fseek(fp, 0, SEEK_END); // 设置文件指针到文件末尾
```
定位到指定位置:
```c
fseek(fp, 100, SEEK_SET); // 设置文件指针到距离文件开头100个字节的位置
```
### 文件长度
获取文件长度:
```c
long file_size = ftell(fp); // 获取当前文件指针的位置,即文件长度
```
### 错误处理
检查文件读写错误:
```c
if (ferror(fp)) {
perror("Error in file operation");
exit(1);
}
```
清除文件错误标志:
```c
clearerr(fp);
```
这些是C语言中进行文件读写操作的基本函数和示例。实际应用中,可能需要根据具体情况进行更多的错误处理和资源管理。