• 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

Object Storage Arubacloud
0 głosów
305 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 (212,670 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 (212,670 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ź 513 wizyt
pytanie zadane 7 grudnia 2018 w C i C++ przez matiibal Użytkownik (620 p.)
0 głosów
1 odpowiedź 253 wizyt
pytanie zadane 3 listopada 2018 w C i C++ przez gorgonkowa Obywatel (1,810 p.)
0 głosów
0 odpowiedzi 373 wizyt

92,579 zapytań

141,432 odpowiedzi

319,657 komentarzy

61,963 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.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...