如何用devc++写代码,创建一个文件,将下面这段代码的结果写入文件,void inputt()//利用循环录入学生信息 { while(1) { printf("请输入学号:"); scanf("%s",&students[num].ID); getchar(); printf("请输入姓名:"); scanf("%s",&students[num].Name); getchar(); printf("请输入语文成绩:"); scanf("%f",&students[num].Mark1); getchar(); printf("请输入数学成绩:"); scanf("%f",&students[num].Mark2); getchar(); printf("请输入英语成绩:"); scanf("%f",&students[num].Mark3); getchar(); printf("请输入程序设计成绩:"); scanf("%f",&students[num].Mark4); //依次输入各项数据 getchar(); if(Student_SearchByIndex(students[num].ID) ==-1)//修改的位置000000 { num++; //移向下一个位置 } else { printf("学号重复,输入数据无效 !!!\n"); } printf("是否继续?(y/n)"); if (getchar()=='n') { break; } } }
时间: 2024-01-30 12:02:41 浏览: 72
可以使用以下代码实现:
```c
#include <stdio.h>
struct Student {
char ID[20];
char Name[20];
float Mark1;
float Mark2;
float Mark3;
float Mark4;
};
struct Student students[100]; // 定义一个包含100个学生的数组
int num = 0; // 学生数量
void inputt() {
while (1) {
printf("请输入学号:");
scanf("%s", &students[num].ID);
getchar();
printf("请输入姓名:");
scanf("%s", &students[num].Name);
getchar();
printf("请输入语文成绩:");
scanf("%f", &students[num].Mark1);
getchar();
printf("请输入数学成绩:");
scanf("%f", &students[num].Mark2);
getchar();
printf("请输入英语成绩:");
scanf("%f", &students[num].Mark3);
getchar();
printf("请输入程序设计成绩:");
scanf("%f", &students[num].Mark4);
getchar();
if (Student_SearchByIndex(students[num].ID) == -1) {
num++;
} else {
printf("学号重复,输入数据无效 !!!\n");
}
printf("是否继续?(y/n)");
if (getchar() == 'n') {
break;
}
getchar(); // 处理输入缓冲区中的换行符
}
}
void writeToFile() {
FILE* fp = fopen("students.txt", "w"); // 打开文件
if (fp == NULL) {
printf("无法创建文件!\n");
return;
}
fprintf(fp, "学号\t姓名\t语文\t数学\t英语\t程序设计\n");
for (int i = 0; i < num; i++) {
fprintf(fp, "%s\t%s\t%.2f\t%.2f\t%.2f\t%.2f\n",
students[i].ID, students[i].Name,
students[i].Mark1, students[i].Mark2,
students[i].Mark3, students[i].Mark4);
}
fclose(fp); // 关闭文件
}
int main() {
inputt();
writeToFile();
printf("已将学生信息写入文件!\n");
return 0;
}
```
在 `inputt()` 函数中,我们使用了一个无限循环来反复录入学生信息,同时使用 `getchar()` 函数来处理输入缓冲区中的换行符。在录入完一组学生信息后,我们会检查该学生的学号是否已经存在于数组中,如果不存在,就将其加入数组中;如果已经存在,则提示错误信息。
在 `writeToFile()` 函数中,我们使用了标准库函数 `fopen()` 打开一个名为 "students.txt" 的文件,并使用 `fprintf()` 函数将学生信息写入文件中。最后,我们使用 `fclose()` 函数关闭文件。
在主函数中,我们首先调用 `inputt()` 函数录入学生信息,然后调用 `writeToFile()` 函数将学生信息写入文件中。最后输出一条提示信息,告知用户程序已经完成。
阅读全文