• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Odczyt i zapis pliku, klasy i gettery

0 głosów
692 wizyt
pytanie zadane 5 sierpnia 2016 w C i C++ przez DragonCoder Nałogowiec (36,500 p.)

Witam,

mam mały problem jeżeli chodzi o gettery, ponieważ nie mogę odczytać zmiennych z pliku i przypisać ich do gettera lub settera, ponieważ próbowałem obu. A więc zapisanie do pliku działa prawidłowo, ale nie wiem jak to odczytać. Próbowałem 3 metoda, a więc>

1. 

                    plik>>warrior.setStrengthWarrior()<<"\n";
                    plik>>warrior.setStaminaWarrior()<<"\n";
                    plik>>warrior.setSleightWarrior()<<"\n";
                    plik>>warrior.setIntelligenceWarrior()<<"\n";
                    plik>>warrior.setStateMoneyBeginnWarrior()<<"\n";
                    plik>>warrior.setLengthWarrior()<<"\n";
                    plik>>warrior.setWidthWarrior()<<"\n";
                    plik>>warrior.setLvlWarrior()<<"\n";
                    plik>>warrior.setExpWarrior()<<"\n";
                    plik>>warrior.setPointForStatystickWarrior()<<"\n";

2. Tak samo jak tam tylko że z getterem.

 Błedy::

begin_the_game_choice_the_hero.cpp|84|error: request for member 'setStaminaWarrior' in 'warrior', which is of non-class type 'Warrior()'|

3. Próba użycia tylko i wyłącznie metody klasy, ale też porażka

plik>>warrior.strenghtWarrior;

Nie wiem jak to zrobić, czy mógłby mnie ktoś naprowadzić? Ogólnie miałem jeszcze jeden pomysł, który opierałby się na na funkcji do zapisu i odczytu, lub friend, ale myślę że funkcja w polu publicznym byłaby lepsza,
 

 

2 odpowiedzi

+1 głos
odpowiedź 5 sierpnia 2016 przez MetRiko Nałogowiec (37,110 p.)

Zapis: Plik>>Zmienna;
oznacza, że do danej zmiennej zostanie przypisany fragment zawartości pliku ("fragmenty" są oddzielane spacjami).
Przez Zmienną mam na myśli tylko podstawowe typy liczbowe/znakowe (int, double, char) oraz tekstowe (tylko string). Tak więc zapis: 
plik>>warrior.setStrengthWarrior();
Nie ma całkowicie sensu.. Przecież warrior.setStrengthWarrior() nie jest ani intem, ani stringiem.. Ba.. to nawet nie jest zmienna tylko metoda. 
Jeżeli chcesz załadować jakąś liczbę z pliku to zrób to w ten sposób:

int temp;
plik>>temp;
warrior.setStrengthWarrior(temp);

A jeżeli chodzi o zapis:
<<"\n";
To mam  nadzieję, że to tylko "gafa z pośpiechu" x)
Taki zapis oznacza zapisanie do pliku..nie możesz tego mieszać..
Zrób dwie osobne funkcje.. jedna dla wczytu (plik>>...;), a druga dla zapisu (plik<<...;)

komentarz 5 sierpnia 2016 przez DragonCoder Nałogowiec (36,500 p.)
Tak kod jest skopionany podczas odczytu zmiennej, zeby ja wyswietlic dodalem tylko plik>> jako przyklad
komentarz 6 sierpnia 2016 przez DragonCoder Nałogowiec (36,500 p.)

                    plik>>strength_warrior;
                    plik>>stamina_warrior;
                    plik>>sleigth_warrior;
                    plik>>intelligence_warrior;
                    plik>>money_warrior;
                    plik>>length_warrior;
                    plik>>width_warrior;
                    plik>>lvl_warrior;
                    plik>>exp_warrior;
                    plik>>point_warrior;

                    Warrior warrior(1,1,1,1,1,1,1,1,1,1);

                    warrior.setStrengthWarrior(strength_warrior);
                    warrior.setStaminaWarrior(stamina_warrior);
                    warrior.setSleightWarrior(sleigth_warrior);
                    warrior.setIntelligenceWarrior(intelligence_warrior);
                    warrior.setStateMoneyBeginnWarrior(money_warrior);
                    warrior.setLengthWarrior(length_warrior);
                    warrior.setWidthWarrior(width_warrior);
                    warrior.setLvlWarrior(lvl_warrior);
                    warrior.setExpWarrior(exp_warrior);
                    warrior.setPointForStatystickWarrior(point_warrior);

Tak wylda po porannej poprawce

+1 głos
odpowiedź 5 sierpnia 2016 przez Ehlert Ekspert (215,230 p.)

Nie po tym co usiłujesz zrobić, ale jak, wnioskuje, że poziom Twojej wiedzy jest znikomy. Mimo to poczytaj o przeciążaniu operatora >>.

komentarz 5 sierpnia 2016 przez DragonCoder Nałogowiec (36,500 p.)
Z normalnym odczytaniem nie mam problemu, chodzi mi o settery i gettery bo to cos dla mnie nowego i po prostu jakos nie moge ich zrozumiec do konca jezeli chodzi o zapis o odczyt pliku
komentarz 5 sierpnia 2016 przez Ehlert Ekspert (215,230 p.)
setter nie ma nic wspólnego z odczytem z pliku. to po prostu publiczna metoda obiektu, która nadaje mu wartość, bo z zewnątrz nie masz do niego dostępu.
komentarz 6 sierpnia 2016 przez DragonCoder Nałogowiec (36,500 p.)
Tak wiem, ale poprostu obiektówka to dla mnie jakaś masakra

Podobne pytania

0 głosów
1 odpowiedź 1,001 wizyt
pytanie zadane 7 grudnia 2018 w C i C++ przez matiibal Użytkownik (620 p.)
0 głosów
1 odpowiedź 477 wizyt
pytanie zadane 3 listopada 2018 w C i C++ przez gorgonkowa Obywatel (1,810 p.)
0 głosów
0 odpowiedzi 551 wizyt

93,728 zapytań

142,668 odpowiedzi

323,283 komentarzy

63,287 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Twierdza Linux. Bezpieczeństwo dla dociekliwych

Aby uzyskać rabat -10%, użyjcie kodu pasja-linux, wpisując go w specjalne pole w koszyku.

...