Diskuze: Praca so strukturou a suborom v jazyku C
V předchozím kvízu, Online test znalostí C++, jsme si ověřili nabyté zkušenosti z kurzu.

Člen

Zobrazeno 7 zpráv z 7.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
V předchozím kvízu, Online test znalostí C++, jsme si ověřili nabyté zkušenosti z kurzu.
Chybně je proces naplňování pole struktur daty ze souboru.
for (o = 0; o < COUNT; o++){
while (fscanf(fr, "%s %d", array[o].name, &array[o].old) != EOF){
printf("%s %d\n", array[o].name, array[o].old);
j++;
}
}
Chyba je v použití dvou cyklů. Cyklus while už sám o sobě provede traversování dát celého souboru. Přepisuješ dokola hodnotu na nulovém indexu, neboť ve while cyklu nezvyšuješ indexovou proměnnou. For cyklus se provádí zbytečně, neboť už všechna data ze souboru byla načtena pomocí while cyklu.
Použij buď samotný for cyklus nebo samotný while cyklus. Mnohem lepší je while cyklus, neboť nevíš, kolik záznamů se nachází v souboru.
Presne, uz rozumiem.
Som si to neuvedomil, myslienka bola aby to robilo nieco ine.
Dakujem
Nakoniec som to takto urobil ze som vytvoril funkiu napln, ktora mi naplnila strukturu a pouzival uz len while, kde som ukladal docasne do parametrov a potom som z tymi parametrami volal funkciu.
void napln(PERSON *person, char *name1, int old1){
person->old = old1;
strcpy(person->name, name1);
}
while (fscanf(fr, "%s %d", do_name, &do_old) != EOF){
napln(&array[j++], do_name, do_old);
}
Z hlediska způsobu programování v C to lze udělat lépe. Celý proces načtení dat ze souboru do pole struktur probíhá pouze mezi daným souborem a polem. Bylo by škoda jej nějakým způsobem oddělovat. Celé to lze napsat jako jednu funkci, která bude mít tři parametry - ukazatel na soubor, ukazatel na pole struktur, velikost struktury. Výsledkem celého tohoto snažení je prosté volání funkce. Cyklus while je součástí této funkce. Prototyp této funkce bude následovný:
int load_file_to_struct(FILE *pf, PERSON *pPerson, int size);
Návratová hodnota může indikovat, zda načtení proběhlo správně či nikoliv.
Inac, vidim, ze si v jazyku C ako doma a ja som este len zaciatocnik a snazim sa tento sietovy protokol Salt-channel nasadit v systeme Windows ale velmi sa mi nedari, ak by si mal cas a zaujem, nechcel by si mi pomoct ?
Zobrazeno 7 zpráv z 7.