I am wondering how to edit my code to swap loading iformation b typing it, to load it from file. I was looking at it for 2 hours but I did not bring up any result so I am trying to find some help here. In file it should look like this for students:
name study_year score
name study_year score
my code:
#include <stdio.h>
#include <string.h>
struct Teacher
{
char name[50];
int age;
};
struct Student
{
char name[50];
int study_year;
float score; // 0.0 -- 100.0
};
void getT(struct Teacher *t)
{
printf("Enter teacher's name: ");
fgets(t->name, sizeof t->name, stdin);
size_t len = strlen(t->name);
if ('\n' == t->name[len - 1]) t->name[len - 1] = '\0';
printf("Enter techaer's age: ");
scanf("%d", &t->age);
getchar();
putchar('\n');
}
void getS(struct Student *s)
{
printf("Enter student's name: ");
fgets(s->name, sizeof s->name, stdin);
size_t len = strlen(s->name);
if ('\n' == s->name[len - 1]) s->name[len - 1] = '\0';
printf("Enter student's study year: ");
scanf("%d", &s->study_year);
getchar();
printf("Enter student's score: ");
scanf("%f", &s->score); // tu bolo chybne "%d"
getchar();
putchar('\n');
}
void printT(struct Teacher t)
{
printf(
"Ucitel: %s\n"
" Vek: %d\n\n",
t.name, t.age);
}
void printS(struct Student s)
{
printf(
"Student: %s\n"
" Rok studia: %d\n"
" Studijny priemer: %.2f\n\n",
s.name, s.study_year, s.score);
}
void main()
{
struct Teacher t1;
int count = 2; //pocet studentov
struct Student ss[count];
getT(&t1);
for (int i = 0; i < count; ++i)
getS(&ss[i]);
printT(t1);
// printS(s1);
for (int i = 0; i < count; ++i)
printS(ss[i]);
printf("Teacher's size: %d\n", sizeof(struct Teacher));
printf("Student's size: %d\n", sizeof(struct Student));
return 0;
}
Thank you for all suggestions and answers.