Untitled
unknown
plain_text
a year ago
2.8 kB
6
Indexable
Never
const char* PLEC[] = { "MEZCFZYZNA","KOBIETA" }; const char* STOPIEN[] = { "I","II","III"}; enum Plec { MEZCZYZNA, KOBIETA }; enum Stopien { I, II, III }; struct Student { char imie[40]; char nazwisko[60]; Plec plec; Stopien stopien; int semestr; }; void wypelnij(Student& p,const char* imie, const char* nazwisko, Plec plec,Stopien stopien, int semestr) { strncpy(p.imie, imie, 40); strncpy(p.nazwisko, nazwisko, 60); p.plec = plec; p.stopien = stopien; p.semestr = semestr; } void ZapiszDoP(const char* nameP,Student st) { FILE* desp = fopen(nameP, "w"); fprintf(desp, "%s; %s; %s; %s; %d;\n", st.imie,st.nazwisko, PLEC[int(st.plec)], STOPIEN[int(st.stopien)], st.semestr); fclose(desp); } void odczytajZP(const char* nameP,Student& st) { char imie[40] = {}; char nazwisko[60] = {}; char plectxt[20] = {}; char stopientxt[20] = {}; Plec plec; Stopien stopien; int sem; FILE* desp = fopen(nameP, "r"); rewind(desp); fscanf(desp, "%[^;]; %[^;]; %[^;]; %[^;]; %d;\n", imie,nazwisko,plectxt,stopientxt,&sem); /* fscanf(desp, "%s; ", imie); fscanf(desp, "%s; ", nazwisko); fscanf(desp, "%s; ", plectxt); fscanf(desp, "%s; ", stopientxt); fscanf(desp, "%d; ", &sem);*/ imie[strlen(imie) - 1] = '\0'; nazwisko[strlen(nazwisko) - 1] = '\0'; plectxt[strlen(plectxt) - 1] = '\0'; stopientxt[strlen(stopientxt) - 1] = '\0'; plec = (strcmp(plectxt, PLEC[0])) ? Plec::KOBIETA : Plec::MEZCZYZNA; if (strcmp(stopientxt, STOPIEN[0])==0) { stopien = Stopien::I; cout << "\nczemu\n"; } else if(strcmp(stopientxt, STOPIEN[1])==0) { stopien = Stopien::II; } else if (strcmp(stopientxt, STOPIEN[2])==0) { stopien = Stopien::III; } else { cout << "\n+++++" << stopientxt << '\n'; stopien = Stopien::I; } wypelnij(st, imie, nazwisko, plec, stopien, sem); fclose(desp); } ostream& operator<<(ostream& ekr, Student& st) { ekr << st.imie <<" " << st.nazwisko << " " << PLEC[int(st.plec)] << " " << STOPIEN[int(st.stopien)] << " " << st.semestr << "\n"; return ekr; } int main() { Student st1; wypelnij(st1,"marek", "markowski", Plec::KOBIETA, Stopien::I, 3); ZapiszDoP("a.txt",st1); Student st2; odczytajZP("a.txt", st2); cout << st2; }