给定某学生的学号删除该学生的学生证信息的代码
时间: 2023-04-05 20:00:27 浏览: 56
这个问题可以回答。以下是一个示例代码:
```
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX_STUDENT_NUM 1000
typedef struct {
char id[20];
char name[50];
char gender[10];
char major[50];
char phone[20];
} Student;
int main() {
Student students[MAX_STUDENT_NUM];
int num_students = 0;
// 读入学生信息
FILE *fp = fopen("students.txt", "r");
if (fp == NULL) {
printf("无法打开文件\n");
return 1;
}
while (fscanf(fp, "%s %s %s %s %s", students[num_students].id, students[num_students].name, students[num_students].gender, students[num_students].major, students[num_students].phone) != EOF) {
num_students++;
}
fclose(fp);
// 删除指定学生的信息
char target_id[20];
printf("请输入要删除的学生的学号:");
scanf("%s", target_id);
int found = 0;
for (int i = 0; i < num_students; i++) {
if (strcmp(students[i].id, target_id) == 0) {
found = 1;
for (int j = i; j < num_students - 1; j++) {
students[j] = students[j + 1];
}
num_students--;
break;
}
}
if (!found) {
printf("未找到该学生\n");
return 1;
}
// 将修改后的学生信息写回文件
fp = fopen("students.txt", "w");
if (fp == NULL) {
printf("无法打开文件\n");
return 1;
}
for (int i = 0; i < num_students; i++) {
fprintf(fp, "%s %s %s %s %s\n", students[i].id, students[i].name, students[i].gender, students[i].major, students[i].phone);
}
fclose(fp);
printf("删除成功\n");
return 0;
}
```