后端
C语言文件处理
C语言文件处理
fopen():打开文件
- 语法格式:
FILE *fopen(const char *filename, const char *mode); - 示例:
FILE *fp = fopen("data.txt", "r");
- 语法格式:
fclose():关闭文件
- 语法格式:
int fclose(FILE *stream); - 示例:
fclose(fp);
- 语法格式:
fscanf():从文件读取格式化数据
- 语法格式:
int fscanf(FILE *stream, const char *format, ...); - 示例:
fscanf(fp, "%d %s", &num, str);
- 语法格式:
fprintf():向文件写入格式化数据
- 语法格式:
int fprintf(FILE *stream, const char *format, ...); - 示例:
fprintf(fp, "%d %s\n", num, str);
- 语法格式:
fgetc():从文件读取单个字符
- 语法格式:
int fgetc(FILE *stream); - 示例:
int c = fgetc(fp);
- 语法格式:
fputc():向文件写入单个字符
- 语法格式:
int fputc(int c, FILE *stream); - 示例:
fputc('A', fp);
- 语法格式:
fgets():从文件读取字符串
- 语法格式:
char *fgets(char *s, int size, FILE *stream); - 示例:
fgets(buffer, 100, fp);
- 语法格式:
fputs():向文件写入字符串
- 语法格式:
int fputs(const char *s, FILE *stream); - 示例:
fputs("Hello", fp);
- 语法格式:
fread():从文件读取二进制数据
- 语法格式:
size_t fread(void *ptr, size_t size, size_t nmemb, FILE *stream); - 示例:
fread(buffer, sizeof(int), 10, fp);
- 语法格式:
fwrite():向文件写入二进制数据
- 语法格式:
size_t fwrite(const void *ptr, size_t size, size_t nmemb, FILE *stream); - 示例:
fwrite(buffer, sizeof(int), 10, fp);
- 语法格式:
文件处理示例
文本文件读写示例
c
#include <stdio.h>
int main() {
FILE *fp;
char buffer[100];
int num;
// 写入文本文件
fp = fopen("data.txt", "w");
if (fp == NULL) {
printf("Error opening file for writing\n");
return 1;
}
fprintf(fp, "Hello, World!\n");
fprintf(fp, "The answer is %d\n", 42);
fclose(fp);
// 读取文本文件
fp = fopen("data.txt", "r");
if (fp == NULL) {
printf("Error opening file for reading\n");
return 1;
}
printf("File content:\n");
while (fgets(buffer, sizeof(buffer), fp) != NULL) {
printf("%s", buffer);
}
fclose(fp);
return 0;
}二进制文件读写示例
c
#include <stdio.h>
struct Student {
char name[50];
int age;
float score;
};
int main() {
FILE *fp;
struct Student s1 = {"John", 20, 85.5};
struct Student s2;
// 写入二进制文件
fp = fopen("student.dat", "wb");
if (fp == NULL) {
printf("Error opening file for writing\n");
return 1;
}
fwrite(&s1, sizeof(struct Student), 1, fp);
fclose(fp);
// 读取二进制文件
fp = fopen("student.dat", "rb");
if (fp == NULL) {
printf("Error opening file for reading\n");
return 1;
}
fread(&s2, sizeof(struct Student), 1, fp);
printf("Student information:\n");
printf("Name: %s\n", s2.name);
printf("Age: %d\n", s2.age);
printf("Score: %.1f\n", s2.score);
fclose(fp);
return 0;
}