Wskaźnik do Void : jak wypisać elementy DLL za pomocą iteratora?

0

Nie ukrywam, że to zadanie, ale temat niestety mnie trochę przerósł, bo nie mam pojęcia jak się do tego zabrać:

Mianowicie chodzi o zaimplementowanie funkcji wczytywania i wypisywania dowolnych znaków z klawiatury, gdzie struktura doubly linked list prezentuje się nastepująco:

struct node
{
void *data;
node *next;
node *prev;
};

Dodatkowo mamy użyć iteratora, aby zbudować ten program. Jakieś wskazówki?

Jak wypisać listę, której każda zmienna ma inny typ?

Jestem początkującym programistą, więc proszę o wyrozumiałość.

Pozdrawiam
Piotrek

0

Powinieneś użyć rzutowania.

    int iDupa = 20;
    void *vDupa = &iDupa;
    cout<<*(int*)vDupa;
0

no może aż tak początkujący to nie jestem ;)

Generalnie problem jest do rozwiązania w C:

wprowadzam dowolny znak z klawiatury: i tu pytanie -> skąd kompilator będzie wiedział, czy jest to float, czy int, czy char? Bo rzutowanie rozwiązuje problem, jeżeli byśmy wiedzieli, co user wprowadzi z klawiatury - ale my tego nie wiemy.

I jak w tym całym problemie znaleźć miejsce dla iteratora?

0

może chodzi Ci o szablony?

0

Iteratora możesz użyć do iterowania po liście. Wszystkie znaki pisane z klawiatury będą takiego samego typu - char.

0
piotrcholewa napisał(a):

wprowadzam dowolny znak z klawiatury: i tu pytanie -> skąd kompilator będzie wiedział, czy jest to float, czy int, czy char? Bo rzutowanie rozwiązuje problem, jeżeli byśmy wiedzieli, co user wprowadzi z klawiatury - ale my tego nie wiemy.

Jeśli tekst wprowadzony przez użytkownika zawiera cokolwiek poza
0123456789,.
To traktuj go jako stringa.
W przeciwnym razie jako float.

1 użytkowników online, w tym zalogowanych: 0, gości: 1