Načtení z txt souboru do bin. stromu – C / C++ – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Načtení z txt souboru do bin. stromu – C / C++ – Fórum – Programujte.comNačtení z txt souboru do bin. stromu – C / C++ – Fórum – Programujte.com

 

Razor
~ Anonymní uživatel
3 příspěvky
29. 4. 2011   #1
-
0
-

Zdravím, mám takový problém. Mám napsaný kód pro binární strom, vše funguje pokud použiju metodu Insert a vkládám do stromu po jedné hodnotě. Já bych, ale potřeboval, aby se při spuštění příkazové řádky nabídla možnost zadat název souboru třeba strom.txt, to jsem nějak zvládnul a snad to jde dobře, ale mám problém stím že nevím jak udělat to aby se z tohoto souboru hodnoty které v něm jsou (na každém řádku jedna hodnota) vkládaly postupně do mého stromu pomocí Insert.
(jestli první zvolit ifstream.open, otevřít soubor a pak nějak read, a postupně to pročítat? potřebuju jen typ int, bude se jednat jen o čísla)

tohle mám na zvolení názvu a otevření:



char nazev[256];
cout << "Zadejte jmeno souboru: ";
cin >> nazev;

ifstream soubor(nazev);

if(!soubor.is_open())
{
cout << "Soubor nelze otevrit!! Zkontrolujte cestu k souboru!!" << endl;
system("pause");
}

if(soubor.is_open())
{
cout << "Soubor otevren.\n\n" << endl;
soubor.open(nazev, ios::in);
}


volání metody Insert a její řešení:


BinarySearchTree tree;
tree.Insert(10);




void BinarySearchTree::Insert(int Key)
{
InsertRec(mRoot, Key);
}


Myslím že by to mohlo stačit, Insert v těle volá InsertRec, který se stará o vkládání atd.

Tak snad někdo pomůže a ukáže jak na to.
Předem díky za odpovědi, moc by mi to pomohlo.

Nahlásit jako SPAM
IP: 91.187.57.–
KIIV
~ Moderátor
+43
God of flame
29. 4. 2011   #2
-
0
-

divim se, ze si byl schopen dat dohromady binarni strom a pritom nedas dohromady ani spravne otvirani souboru :)

EDIT: mimochodem vyhoda ifstream je v tom, ze se s nim pracuje naprosto stejne jako s cin (je to to samy)

Nahlásit jako SPAM
IP: 93.91.152.–
Program vždy dělá to co naprogramujete, ne to co chcete...
Razor
~ Anonymní uživatel
3 příspěvky
29. 4. 2011   #3
-
0
-

No jako, načist soubor vypsat, nebo zapsat do souboru to sem zvládnul. Ale zasekl jsem se u toho otevření txt jak postupně ty čísla mám vkládat do stromu, zkoušel jsem všechno možné, a při vypsání toho stromu mi to místo těch hodnot vyhodilo, uplně něco jiného. Tak už fakt nevim..

Nahlásit jako SPAM
IP: 91.187.57.–
KIIV
~ Moderátor
+43
God of flame
29. 4. 2011   #4
-
0
-

To Razor : no podle toho co si sem pastnul, tak nezvladl :)

mas tam testy is_open() ale soubor oteviras az v podmince kde mas "je otevren"

Nahlásit jako SPAM
IP: 93.91.152.–
Program vždy dělá to co naprogramujete, ne to co chcete...
Razor
~ Anonymní uživatel
3 příspěvky
29. 4. 2011   #5
-
0
-

No vidíte dal jsem tu špatný kus kódu, měl jsem to tak že jsem měl otevřen soubor a až pak zkusil test na jestli je, neni otevřen. I když je to možná v tenhle moment zbytečné, potřebuji tedy jen otevřít soubor, což by nebyl zas takový problém. Ale problém nastane v ten moment když mám (zadané hodnoty jsou vždycky tak že jedna je na jednom řádku) vkládat do stromu.. Tak dál nevím jak udělat abych ten txt přečetl a vkládall postupně hodnotu po hodnotě do toho stromu. Jak správně číst po hodnotě a odkázat na insert aby to vkládal.

Nahlásit jako SPAM
IP: 91.187.57.–
KIIV
~ Moderátor
+43
God of flame
29. 4. 2011   #6
-
0
-

To Razor : klicove slovo bude cyklus :)

Nahlásit jako SPAM
IP: 93.91.152.–
Program vždy dělá to co naprogramujete, ne to co chcete...
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, 117 hostů

Moderátoři diskuze

 

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