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

zapis i odczyt mam problem z tym c++

0 głosów
70 wizyt
pytanie zadane 27 grudnia 2018 w C i C++ przez VecsonON Nowicjusz (170 p.)

poczebuje pomocy zrobiłem taki zapis i odczyt ale on nie działa

kod zapisu i odczytu:

case 10:
            {
                plik.open("save.sav", ios::out);
                plik << hajs;
                plik << mieskancy;
                plik << wojsko;
                plik << farmy;
                plik << rolnicy;
                plik << jedzienie;
                plik << domy;
                cout << "Pomyslnie zapisano gre" << endl;
            }
                break;
            case 9:
            {
                plik.open("save.sav", ios::in);
                plik >> hajs;
                plik >> mieskancy;
                plik >> wojsko;
                plik >> farmy;
                plik >> rolnicy;
                plik >> jedzienie;
                plik >> domy;
                cout << "Pomyslnie wczytano gre" << endl;
                break;

a to Cały kod:

#include "pch.h"
#include <iostream>
#include <windows.h>
#include <time.h>
#include <cstdlib>
#include <fstream>

using namespace std;

int st , hajs = 1000 , mieskancy = 20 , wojsko = 100 , farmy = 2 , rolnicy = 2 , jedzienie = 50 ,  domy = 10 , wb1;

int liczba;

int main()
{
    fstream plik;
    HANDLE hOut;
    hOut = GetStdHandle(STD_OUTPUT_HANDLE);

    SetConsoleTextAttribute(hOut, 0x0003);
    cout << "---------------------------" << endl; Sleep(100);
    cout << "----|||-----|||-----|||----" << endl; Sleep(100);
    cout << "-----|||---|||||---|||-----" << endl; Sleep(100);
    cout << "------|||-|||-|||-|||------" << endl; Sleep(100);
    cout << "--------|||-----|||--------" << endl; Sleep(100);
    cout << "---------------------------" << endl; Sleep(300);
    SetConsoleTextAttribute(hOut, 0x0004);
    cout << "1.START" << endl;
    cout << "2.EXIT" << endl;
    cin >> st;
    for (;;)
    {
        switch (st)
        {
        case 1:
        {
            system("cls");
            SetConsoleTextAttribute(hOut, 0x0007);
            hajs /= mieskancy;
            hajs /= rolnicy;
            jedzienie /= wojsko;
            jedzienie /= mieskancy;
            jedzienie /= rolnicy;
            srand(time(NULL));
            liczba = rand() % 100 ;    
            if (liczba == 51)
            {
                mieskancy += domy;
                domy -= domy;
            }
            cout << "Twoja Armia liczy: " << wojsko << endl;
            cout << "masz pieniedzy: " << hajs << endl;
            cout << "masz mieskancuw: " << mieskancy << endl;
            cout << "masz jedzienia: " << jedzienie << endl;
            cout << "masz farm: " << farmy << endl;
            cout << "ilosc rolnikow: " << rolnicy << endl; 
            cout << "ilosc wolnych domow " << domy << endl;
            cout << "------------------------" << endl;
            cout << "---------WOJENE---------" << endl;
            cout << "------------------------" << endl;
            cout << "1.Rekrutuj armie " << endl;
            cout << "2.lista przecziwnikow " << endl;
            cout << "3.wojna" << endl;
            cout << "------------------------" << endl;
            cout << "-------GOSPODARKA-------" << endl;
            cout << "------------------------" << endl;
            cout << "4.zbieraj podatki" << endl;
            cout << "5.idz rekrutowac rolnikow" << endl;
            cout << "6.idz zbieraj plony" << endl;
            cout << "7.idz buduj farmy" << endl;
            cout << "8.buduj domy dla mieskancow" << endl;
            cout << "9.Odczyt gry" << endl;
            cout << "10.Zapis gry" << endl;
            cout << "11.Exit" << endl;
            cin >> wb1;
            switch (wb1)
            {
            case 4:
            {
                cout << "Zebrano Podatki" << endl;
                hajs *= mieskancy;
                break;
            }
            case 5:
            {
                if (mieskancy <= 3)
                {
                    cout << "nie udalo sie zrekrutowac rolnikow" << endl;
                }
                else
                {
                    cout << "zrekrutowano rolnikow [2]" << endl;
                    rolnicy += 2;
                    mieskancy -= 2;
                }
            }
            break;
            case 6:
            {
                if (rolnicy = 0)
                {
                    cout << "Zebrano plony [Nie efektywnie]" << endl;
                    jedzienie += farmy;
                }
                else
                {
                    cout << "Zebrano plony [Efektywnie]" << endl;
                    jedzienie += farmy *= rolnicy;
                }
            }
            break;
            case 7:
            {
                cout << "Wybudowano nowa farme" << endl;
                farmy += 1;
                hajs -= 100;
            }
            break;
            case 8:
            {
                cout << "Wybudowano domy" << endl;
                domy += 1;
                hajs -= 100;
            }
            break;
            case 11:
            {
            exit(0);
            }
                break;
            case 10:
            {
                plik.open("save.sav", ios::out);
                plik << hajs;
                plik << mieskancy;
                plik << wojsko;
                plik << farmy;
                plik << rolnicy;
                plik << jedzienie;
                plik << domy;
                cout << "Pomyslnie zapisano gre" << endl;
            }
                break;
            case 9:
            {
                plik.open("save.sav", ios::in);
                plik >> hajs;
                plik >> mieskancy;
                plik >> wojsko;
                plik >> farmy;
                plik >> rolnicy;
                plik >> jedzienie;
                plik >> domy;
                cout << "Pomyslnie wczytano gre" << endl;
                break;

            }
                break;
            }

        }
        break;
        case 2:
        {
            exit(0);
        }
        break;
        }
    }
    return 0;
}

2 odpowiedzi

0 głosów
odpowiedź 27 grudnia 2018 przez MsMaciek123 Pasjonat (17,530 p.)

Co nie działa? Odczyt czy zapis. Według mnie zapis jest w porządku (tak na oko), ale z odczytem to ja nie wiem...

Możesz przeczytać to Kurs C++ | cpp0x.pl | Obsługa plików | 305

komentarz 27 grudnia 2018 przez VecsonON Nowicjusz (170 p.)
odczyt nie działa a to przestudiowałem 100 razy :D|

 

zman np ifstream i inne

też prubowałem z tym ale nie działał D:
komentarz 27 grudnia 2018 przez MsMaciek123 Pasjonat (17,530 p.)
To chyba źle przestudiowałeś. Problem jest w tym

plik >> zmienna

Bo tak się nie powinno robić. Skąd program ma wiedzieć która to akurat linia. Jutro spróbuję ci pomóc, bo dziś już padam ze względu na godzinę ( i nie mam dostępu do komputera ).
0 głosów
odpowiedź 27 grudnia 2018 przez RafalS VIP (112,560 p.)
Zobacz na plik który sie tworzy. Sklejasz wszytkie liczby w jedną. Oddziel je spacjami :p

Podobne pytania

0 głosów
1 odpowiedź 68 wizyt
pytanie zadane 7 grudnia 2018 w C i C++ przez matiibal Użytkownik (510 p.)
0 głosów
1 odpowiedź 49 wizyt
pytanie zadane 3 listopada 2018 w C i C++ przez gorgonek Obywatel (1,220 p.)
0 głosów
2 odpowiedzi 100 wizyt
pytanie zadane 1 stycznia w C i C++ przez nooblike Nowicjusz (120 p.)
Porady nie od parady
Nie wiesz jak poprawnie zredagować pytanie lub pragniesz poznać którąś z funkcji forum? Odwiedź podstronę Pomoc (FAQ) dostępną w menu pod ikoną apteczki.FAQ

64,981 zapytań

111,459 odpowiedzi

234,638 komentarzy

46,802 pasjonatów

Przeglądających: 221
Pasjonatów: 5 Gości: 216

Motyw:

Akcja Pajacyk

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

Oto dwie polecane książki warte uwagi. Pełną listę znajdziesz tutaj.

...