MIT-Curricular/DS/C/Lab/Week2/StudentRecordsFile.c

74 lines
1.9 KiB
C
Raw Normal View History

2024-08-05 01:09:43 +05:30
#include <stdio.h>
typedef struct {
char name[50];
int roll_no;
char grade;
char branch[50];
} Student;
void write_student_records(const char filename[], Student students[], int n) {
FILE *file = fopen(filename, "w");
if (file == NULL) {
printf("Error opening file.\n");
return;
}
for (int i = 0; i < n; i++) {
fprintf(file, "%s %d %c %s\n", students[i].name, students[i].roll_no, students[i].grade, students[i].branch);
}
fclose(file);
}
void store_branchwise_records(const char filename[]) {
FILE *file = fopen(filename, "r");
if (file == NULL) {
printf("Error opening file.\n");
return;
}
Student student;
char branch_filename[50];
while (fscanf(file, "%s %d %c %s", student.name, &student.roll_no, &student.grade, student.branch) != EOF) {
sprintf(branch_filename, "%s.txt", student.branch);
FILE *branch_file = fopen(branch_filename, "a");
if (branch_file == NULL) {
printf("Error opening branch file.\n");
continue;
}
fprintf(branch_file, "%s %d %c\n", student.name, student.roll_no, student.grade);
fclose(branch_file);
}
fclose(file);
}
int main() {
int n;
printf("Enter the number of students: ");
scanf("%d", &n);
Student students[n];
for (int i = 0; i < n; i++) {
printf("Enter details for student %d:\n", i + 1);
printf("Name: ");
scanf("%s", students[i].name);
printf("Roll No: ");
scanf("%d", &students[i].roll_no);
printf("Grade: ");
scanf(" %c", &students[i].grade);
printf("Branch: ");
scanf("%s", students[i].branch);
}
write_student_records("students.txt", students, n);
store_branchwise_records("students.txt");
printf("Records stored branch-wise in separate files.\n");
return 0;
}