# C 文件示例

> 原文： [https://www.programiz.com/c-programming/c-file-examples](https://www.programiz.com/c-programming/c-file-examples)

#### 在本文中，您将找到处理 C 编程中文件输入/输出操作的示例列表。

要了解此页面上的所有程序，您应该了解以下主题。

*   [C 数组](/c-programming/c-arrays "C programming Arrays")
*   [C 指针](/c-programming/c-pointers "C Programming Pointers")
*   [数组和指针关系](/c-programming/c-pointers-arrays "Relation Between Arrays and Pointer")
*   [文件 I/O](/c-programming/c-file-input-output "C File Input Output")

* * *

## C 文件示例

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

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

   printf("Enter number of students: ");
   scanf("%d", &num);

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

   for(i = 0; i < num; ++i)
   {
      printf("For student%d\nEnter name: ", i+1);
      scanf("%s", name);

      printf("Enter marks: ");
      scanf("%d", &marks);

      fprintf(fptr,"\nName: %s \nMarks=%d \n", name, marks);
   }

   fclose(fptr);
   return 0;
} 
```

**2\. C 程序：读取 n 个学生的姓名和标志并将它们存储在文件中。 如果文件先前已退出，则将信息添加到文件中。**

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

   printf("Enter number of students: ");
   scanf("%d", &num);

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

   for(i = 0; i < num; ++i)
   {
      printf("For student%d\nEnter name: ", i+1);
      scanf("%s", name);

      printf("Enter marks: ");
      scanf("%d", &marks);

      fprintf(fptr,"\nName: %s \nMarks=%d \n", name, marks);
   }

   fclose(fptr);
   return 0;
} 
```

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

```c
#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("Enter name: ");
        gets(stud1[i].name);

        printf("Enter height: "); 
        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("Name: %s\nHeight: %d", stud2[i].name, stud2[i].height);
    }
    fclose(fptr);
}
```