diff --git a/du2/program.c b/du2/program.c index ae59888..e401cb2 100644 --- a/du2/program.c +++ b/du2/program.c @@ -41,17 +41,21 @@ int main() { int x = 0; //spracovanie inputu, vycitavanie najdenych mien a najdenych poctov hlasov z retazca - while (sscanf(line, "%d %s %s", &najdPocetHlasov, najdMeno, najdPriezvisko) != -1) + //bude citat dovtedy, pokial nedosiahne limit studentDB array-u (20 prvkov max) alebo fgets() sa nedostane na koniec suboru + while (x < 20 && fgets(line, SIZE, stdin) != NULL) { - //prekopiruje najdene priezviska - strcpy(DBStudenti[x].meno, najdMeno); - strcpy(DBStudenti[x].priezvisko, najdPriezvisko); - DBStudenti[x].pocetHlasov = najdPocetHlasov; - x += 1; + if(sscanf(line, "%d %s %s", &najdPocetHlasov, najdMeno, najdPriezvisko) == 3) + { + //prekopiruje najdene priezviska (iba ak sscanf() najde vsetky 3 hodnoty) + strcpy(DBStudenti[x].meno, najdMeno); + strcpy(DBStudenti[x].priezvisko, najdPriezvisko); + DBStudenti[x].pocetHlasov = najdPocetHlasov; + x += 1; - //reset nacitanych hodnot na konci kazdeho cyklu - // memset(najdMeno, 0, SIZE); - najdPocetHlasov = 0; + //reset nacitanych hodnot na konci kazdeho cyklu + // memset(najdMeno, 0, SIZE); + najdPocetHlasov = 0; + } } //zoradenie zoznamu, resp. arrayu