Avatar
Andrej
Člen
Avatar
Andrej :

Dobrý, potreboval by som pomôcť s načítam čísel zo súboru. Samotné čísla mi načíta, ale potrebujem ich vložiť do zásobníka pomocou už vytvorenej metódy push. Ak by ste mi niekto vedel poradiť budem vďačný, keďže som začiatočník.

void read(LinkedList &list)
{


        string line;
        ifstream subor("test.txt");
        if (subor.is_open())
        {
                while (getline(subor, line))
                {

                        cout << line << "\n";
                }
                subor.close();
        }

        else cout << "Unable to open file";



}

METODA push:

void push(LinkedList &list, unsigned int nodeID)
{
        list.node = new LinkedList::Node(nodeID, list.node);
        if (list.node != NULL)
        {
                list.count++;
        }
}
 
Odpovědět 11. listopadu 19:33
Avatar
Martin Dráb
Redaktor
Avatar
Odpovídá na Andrej
Martin Dráb:

No, měl bys prozkoumat, jaké znaky se mohou nacházet mezi jednotlivými čísly, načtenou řádku rozdělit na úseky obsahující čísla a ta zkonvertovat. Ke konverzi můžeš použít různé funkce: atoi, strtoi**, bude jich asi ještě více.
http://stackoverflow.com/…ing-to-int-c

Co se týče metody push, myslím, že není napsaná zrovna šťastně. Pokud by operátor new// vrátil 0 (neboli **NULL) a nevyhodil při tom výjimku (což je asi jeho standardní chování, ale určitě půjde předefinovat), odpojíš zbytek seznamu od prvního prvku, čímž jej (ten zbytek) ztratíš.

Akceptované řešení
+20 Zkušeností
+1 bodů
Řešení problému
Nahoru Odpovědět 11. listopadu 19:46
2 + 2 = 5 for extremely large values of 2
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 2 zpráv z 2.