Nacitani dat do struktury ze souboru – C / C++ – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu
Reklama
Reklama

Nacitani dat do struktury ze souboru – C / C++ – Fórum – Programujte.comNacitani dat do struktury ze souboru – C / C++ – Fórum – Programujte.com

 

Hledá se programátor! Plat 1 800 € + bonusy (firma Boxmol.com)
bbencz
~ Anonymní uživatel
2 příspěvky
29. 12. 2013   #1
-
0
-

Ahoj, dělám ukol do školy v Jazyku C a potřebuju trošku popstrčit,

Jsou zadaný dvě struktury

typedef struct {  
int pocetMest;  
tSeznamMest* seznam;  
double** vzdalenosti; }
tDatabaze; 
typedef struct SeznamMest { 
char mesto[DELKA_MESTA]; 
struct SeznamMest* dalsi;
} tSeznamMest;


Struktury jsou alokovaný dynamicky, data ze souboru si načítám pomocí fgets a cyklu while řádek po řádku, int pocetMest naplnim bez problemu, ale problem nastava kdyz chci naplnit seznam mest. Jestli jsem to dobře pochopil, tak musím přes první strukturu, která obsahuje ukazatel "tSeznamMest* seznam;" na druhou strukturu, naplnit seznam daty ze souboru. Jak mám uložit data, které si načtu ze souboru do toho seznamu?? Napadlo mě vytvořit si pomocné pole, to si dynamicky alokovat, ale nevím jak přistoupím z první struktury do stuktury druhé.

Nahlásit jako SPAM
IP: 90.180.9.–
Reklama
Reklama
hlucheucho+10
Posthunter
30. 12. 2013   #2
-
0
-

Nechápu, proč seznam měst není pole. Vhnízděné struktury jsou na to nevhodné - představ si seznam 1000 měst. Pro název každého města musíš "projít" všechny předešlá města než se dopracuješ k požadovanému. Ukazatel na jméno města by vypadal nějak takto:

tDatabaze->tSeznamMest->dalsi->dalsi->mesto

Těch "dalsi" by se opakovalo podle toho, ke kolikátému městu se chceš dostat. Působí to na mne krkolomně. Jediné, co mne napadá, je rekurzívní volání funkce.

Měj na paměti, že vkládání názvu města do struktury je kopírování řetězce - vhodné jsou funkce strcpy nebo pokud chceš omezit počet znaků pak strncpy nebo memcpy. 

hu

Nahlásit jako SPAM
IP: 195.178.67.–
bbencz
~ Anonymní uživatel
2 příspěvky
30. 12. 2013   #3
-
0
-

tak nakonec to je trošku jinak (buď je to blbě zadaný nebo sem to špatně pochopil) ,každopádně to co načítám ze souboru je předem daná databáze měst a tu potřebuju nějakým způsobem uložit do tDatabaze. Ta druhá struktura to je muj vlastní seznam, kde si vytvářím jednotlivá města a porovnávám jestli sou v databázi nebo nejsou a dál s tím určitým způsobem pracuju, to zvládám to je práce s linked listem, vytváření a mazání položek seznamu,přesun podle indexu atd... mě se jedná o to jakým způsobem uložit data do tDatabaze.

bude to asi nějak takhle: 

char radek[velikost];		//ulozeny radek souboru

tDatabaze *db;
db = (tDatabaze*)malloc(sizeof(tDatabaze));

strcpy(db->seznam->mesto,radek);
strcpy(db->seznam->mesto->dalsi,radek);
Nahlásit jako SPAM
IP: 90.180.9.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 60 hostů

Moderátoři diskuze

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032016 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý