跳到主要内容

C 语言文件示例

提示
  1. 写入文件:C程序可以将多个学生的姓名和成绩写入文件,如使用fprintf()函数写入文本文件。
  2. 追加到文件:如果文件已存在,C程序能够将新数据追加到文件中,不覆盖原有内容,使用fopen()函数的追加模式("a")。
  3. 结构体数组的读写:C程序可以使用fwrite()函数将结构体数组写入文件,然后使用fread()读取并显示这些数据。

要理解本页上的所有程序,您应该了解以下主题。

C语言文件示例

1. C程序读取n个学生的姓名和分数,并将它们存储在一个文件中。

#include <stdio.h>
int main()
{
char name[50];
int marks, i, num;

printf("输入学生数量: ");
scanf("%d", &num);

FILE *fptr;
fptr = (fopen("C:\\student.txt", "w"));
if(fptr == NULL)
{
printf("错误!");
exit(1);
}

for(i = 0; i < num; ++i)
{
printf("对于学生%d\n输入姓名: ", i+1);
scanf("%s", name);

printf("输入分数: ");
scanf("%d", &marks);

fprintf(fptr,"\n姓名: %s \n分数=%d \n", name, marks);
}

fclose(fptr);
return 0;
}

2. C程序从文件中读取n个学生的姓名和分数,并将它们存储在文件中。如果文件已经存在,则将信息添加到文件中。

#include <stdio.h>
int main()
{
char name[50];
int marks, i, num;

printf("输入学生数量: ");
scanf("%d", &num);

FILE *fptr;
fptr = (fopen("C:\\student.txt", "a"));
if(fptr == NULL)
{
printf("错误!");
exit(1);
}

for(i = 0; i < num; ++i)
{
printf("对于学生%d\n输入姓名: ", i+1);
scanf("%s", name);

printf("输入分数: ");
scanf("%d", &marks);

fprintf(fptr,"\n姓名: %s \n分数=%d \n", name, marks);
}

fclose(fptr);
return 0;
}

3. C程序使用fwrite()将结构数组的所有成员写入文件。从文件中读取数组并在屏幕上显示。

#include <stdio.h>
struct student
{
char name[50];
int height;
};
int main(){
struct student stud1[5], stud2[5];
FILE *fptr;
int i;

fptr = fopen("file.txt","wb");
for(i = 0; i < 5; ++i)
{
fflush(stdin);
printf("输入姓名: ");
gets(stud1[i].name);

printf("输入身高: ");
scanf("%d", &stud1[i].height);
}

fwrite(stud1, sizeof(stud1), 1, fptr);
fclose(fptr);

fptr = fopen("file.txt", "rb");
fread(stud2, sizeof(stud2), 1, fptr);
for(i = 0; i < 5; ++i)
{
printf("姓名: %s\n身高: %d", stud2[i].name, stud2[i].height);
}
fclose(fptr);
}

请注意,我保留了原文中的英文专业术语和代码中的变量名称不变。