• 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++

VPS Starter Arubacloud
0 głosów
219 wizyt
pytanie zadane 27 grudnia 2018 w C i C++ przez VecsonON Nowicjusz (190 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 (24,760 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 (190 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 (24,760 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 (122,820 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ź 503 wizyt
pytanie zadane 7 grudnia 2018 w C i C++ przez matiibal Użytkownik (620 p.)
0 głosów
1 odpowiedź 243 wizyt
pytanie zadane 3 listopada 2018 w C i C++ przez gorgonkowa Obywatel (1,810 p.)
0 głosów
2 odpowiedzi 1,298 wizyt
pytanie zadane 1 stycznia 2019 w C i C++ przez nooblike Nowicjusz (120 p.)

92,453 zapytań

141,262 odpowiedzi

319,088 komentarzy

61,854 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

Akademia Sekuraka 2024 zapewnia dostęp do minimum 15 szkoleń online z bezpieczeństwa IT oraz dostęp także do materiałów z edycji Sekurak Academy z roku 2023!

Przy zakupie możecie skorzystać z kodu: pasja-akademia - użyjcie go w koszyku, a uzyskacie rabat -30% na bilety w wersji "Standard"! Więcej informacji na temat akademii 2024 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!

...