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

Jak zrobić save c++?

Object Storage Arubacloud
0 głosów
302 wizyt
pytanie zadane 22 grudnia 2016 w C i C++ przez zkkf56 Dyskutant (8,710 p.)

Witam,

Jak mógłbym zrobić save do tego kodu:

#include <iostream>
#include <cstdlib>
#include <time.h>
#include <stdio.h>
#include <windows.h>

using namespace std;

int liczba, strzal, ile_prob=0, wybor, wybor2, monety=0, exp=0, poziom=1;

int main()
{

    //kolory :P

    HANDLE hOut;
    hOut = GetStdHandle( STD_OUTPUT_HANDLE );

    while(1)
    {
        SetConsoleTextAttribute( hOut, 0x0006 );
        ile_prob=0;
        cout<<""<<endl;
        cout<<""<<endl;
        cout<<"---Promocja Swiateczna Trwa!----"<<endl;
        cout<<""<<endl;
        cout<<""<<endl;
        cout<<"-----MENU-----"<<endl;
        cout<<"1.Graj"<<endl;
        cout<<"2.Challanges"<<endl;
        cout<<"3.Sklep(Dostepne tylko w swieta!)"<<endl;
        cout<<"Twoje monety:"<<monety<<endl;
        cout<<"Twoj exp:"<<exp<<endl;
        cout<<"Twoj poziom:"<<poziom<<endl;
        cin>>wybor;


        //Funkcja poziomów
        if(exp==100)
        {
            poziom = poziom + 1;
            exp = 0;
        }






        if(wybor==1)
        {
            SetConsoleTextAttribute( hOut, 0x0003 );
            cout<<"Witaj! Pomyslalem sobie liczbe 1..100"<<endl;

            srand(time(NULL));
            liczba = rand()%100+1;

            while(strzal!=liczba)
            {
                ile_prob++;
                SetConsoleTextAttribute( hOut, 0x0001 );
                cout<<"Zgadnij jaka (to Twoja "<<ile_prob<<" proba): ";
                cin>>strzal;

                if(strzal==liczba)
                {
                    SetConsoleTextAttribute( hOut, 0x00052 );
                    cout<<"Udalo sie! Wygrywasz w "<<ile_prob<<" probie"<<endl;
                    cout<<"Brawo zdobywasz 15 monet!"<<endl;
                    monety = monety + 15;
                    exp = exp + 50;
                }

                else if(strzal<liczba)
                {
                    SetConsoleTextAttribute( hOut, 0x0004 );
                    cout<<"To za malo"<<endl;
                }
                else if(strzal>liczba)
                {
                    SetConsoleTextAttribute( hOut, 0x0002 );
                    cout<<"To za duzo"<<endl;
                }
            }

            getchar();
            getchar(); //dla pewnosci 2 razy

        }









        //CHALLANGES!



        if(wybor==2)
        {
            cout<<"Lista challanegow: "<<endl;
            cout<<"1.Wygraj w mniej niz 10 probach!"<<endl;
            cout<<"2.Wygraj w mniej niz 5 probach!"<<endl;
            cout<<"3.Poradzisz sobie z 500 liczbami?"<<endl;
            cin>>wybor2;

            if(wybor2==1)
            {
                //1 challange
                SetConsoleTextAttribute( hOut, 0x0003 );
                cout<<"Witaj! Pomyslalem sobie liczbe 1..100"<<endl;
                srand(time(NULL));
                liczba = rand()%100+1;

                while(strzal!=liczba)
                {
                    ile_prob++;
                    SetConsoleTextAttribute( hOut, 0x0001 );
                    cout<<"Zgadnij jaka (to Twoja "<<ile_prob<<" proba): ";
                    cin>>strzal;


                    if(ile_prob>10)
                    {
                        SetConsoleTextAttribute( hOut, 0x0004 );
                        cout<<"Przegrales! :("<<endl;
                        exit(0);
                    }

                    if(strzal==liczba)
                    {
                        SetConsoleTextAttribute( hOut, 0x00052 );
                        cout<<"Udalo sie! Wygrywasz w "<<ile_prob<<" probie"<<endl;
                        cout<<"Brawo zdobywasz 20 monet!"<<endl;
                        monety = monety + 20;
                        exp = exp + 20;
                        ile_prob==0;
                    }
                    else if(strzal<liczba)
                    {
                        SetConsoleTextAttribute( hOut, 0x0004 );
                        cout<<"To za malo"<<endl;
                    }
                    else if(strzal>liczba)
                    {
                        SetConsoleTextAttribute( hOut, 0x0002 );
                        cout<<"To za duzo"<<endl;
                    }
                }

                getchar();
                getchar(); //dla pewnosci 2 razy
            }

            if(wybor2==2)
            {
                //1 challange
                SetConsoleTextAttribute( hOut, 0x0003 );
                cout<<"Witaj! Pomyslalem sobie liczbe 1..100"<<endl;
                srand(time(NULL));
                liczba = rand()%100+1;

                while(strzal!=liczba)
                {
                    ile_prob++;
                    SetConsoleTextAttribute( hOut, 0x0001 );
                    cout<<"Zgadnij jaka (to Twoja "<<ile_prob<<" proba): ";
                    cin>>strzal;


                    if(ile_prob>5)
                    {
                        SetConsoleTextAttribute( hOut, 0x0004 );
                        cout<<"Przegrales! :("<<endl;
                        exit(0);
                    }

                    if(strzal==liczba)
                    {
                        SetConsoleTextAttribute( hOut, 0x00052 );

                        cout<<"Udalo sie! Wygrywasz w "<<ile_prob<<" probie"<<endl;
                        cout<<"Brawo zdobywasz 25 monet!"<<endl;
                        monety = monety + 25;
                        exp = exp + 25;
                        ile_prob==0;
                    }
                    else if(strzal<liczba)
                    {
                        SetConsoleTextAttribute( hOut, 0x0004 );
                        cout<<"To za malo"<<endl;
                    }
                    else if(strzal>liczba)
                    {
                        SetConsoleTextAttribute( hOut, 0x0002 );
                       cout<<"To za duzo"<<endl;
                    }

                }

                getchar();
                getchar(); //dla pewnosci 2 razy
            }

            if(wybor2==3)
            {
                //1 challange
                SetConsoleTextAttribute( hOut, 0x0003 );
                cout<<"Witaj! Pomyslalem sobie liczbe 1..500"<<endl;
                srand(time(NULL));
                liczba = rand()%500+1;

                while(strzal!=liczba)
                {
                    ile_prob++;
                    SetConsoleTextAttribute( hOut, 0x0001 );
                    cout<<"Zgadnij jaka (to Twoja "<<ile_prob<<" proba): ";
                    cin>>strzal;



                    if(strzal==liczba)
                    {
                        SetConsoleTextAttribute( hOut, 0x00052 );
                        cout<<"Udalo sie! Wygrywasz w "<<ile_prob<<" probie"<<endl;
                        cout<<"Brawo zdobywasz 30 monet!"<<endl;
                        monety = monety + 30;
                        exp = exp + 30;
                        ile_prob==0;
                    }
                    else if(strzal<liczba)
                    {
                        SetConsoleTextAttribute( hOut, 0x0004 );
                        cout<<"To za malo"<<endl;
                    }

                    else if(strzal>liczba)
                    {
                        SetConsoleTextAttribute( hOut, 0x0002 );
                        cout<<"To za duzo"<<endl;
                    }

                }

                getchar();
                getchar(); //dla pewnosci 2 razy
            }


        }



        if(wybor==3)
        {
            cout<<"1.Dodatkowe monety! +10 monet!"<<endl;
            cout<<"2.Dodatkowy exp!"<<endl;


        }
    }
    return 0;
}

Szukałem na googlach wszędzie i nic nie działa. Próbowałem wszystkiego i nic. Ale może wy pomożecie :). z góry dzięki za pomoc :-).

 

 

PS. Jakby ktoś pytał główkowałem nad tym i nie wiem jak zrobić ten save. Chodzi mi o zapis expa, monet, poziomu i ulepszeń kupionych w sklepie :)

1 odpowiedź

0 głosów
odpowiedź 22 grudnia 2016 przez Patryk Krajewski Nałogowiec (26,170 p.)
wybrane 1 lipca 2017 przez zkkf56
 
Najlepsza
Wiesz jak wczytywać i zapisywać do pliku?

Po prostu zapisujesz do pliku dane, a potem je wczytujesz do zmiennych.
komentarz 22 grudnia 2016 przez Patryk Krajewski Nałogowiec (26,170 p.)
Musisz zapisywać dane w jakimś formacie np.

5

2

3

Wtedy odczytujesz plik i pobierasz pierwszą linijkę, zapisujesz do zmiennej monety, pobierasz drugą linijkę i zapisujesz do zmiennej exp i tak dalej.

Przy zapisie oczywiście nadpisujesz te wartości nowymi, które masz w zmiennych.

Tutaj masz dużo informacji o obsługiwaniu plików: http://cpp0x.pl/kursy/Kurs-C++/Obsluga-plikow/305
komentarz 22 grudnia 2016 przez zkkf56 Dyskutant (8,710 p.)
ale to zapisywanie które mam jest dobre czy zle ?
komentarz 22 grudnia 2016 przez Patryk Krajewski Nałogowiec (26,170 p.)
To jest sposób z języka C, którego nigdy nie używałem.
komentarz 22 grudnia 2016 przez zkkf56 Dyskutant (8,710 p.)

Ok, wymyśliłem rozwiązanie ale jak zwykle muszę mieć problem :D. Oto kod:

#include <iostream>
#include <fstream>
#include <cstdlib>
#include <time.h>
#include <stdio.h>
#include <windows.h>

using namespace std;

int liczba, strzal, ile_prob=0, wybor, wybor2, monety=0, exp=0, poziom=1;



void zapisz()
{
    fstream dane;
    dane.open("save.txt", ios::out);

    dane<<monety<<endl;
    dane<<exp<<endl;
    dane<<poziom<<endl;

    dane.close();
}


void wczytaj()
{
    string linia;
    int nr_linii=1;

    fstream plik;
    plik.open("save.txt", ios::in);

    if(plik.good()==false) cout<<"Nie mozna otworzyc pliku!";

    while (getline(plik, linia))
    {
        switch (nr_linii)
        {
            case 1: monety=atoi(linia.c_str()); break;
            case 2: exp=atoi(linia.c_str()); break;
            case 3: poziom=atoi(linia.c_str()); break;
        }
        nr_linii++;
    }

    plik.close();

}





int main()
{

    //kolory :P

    HANDLE hOut;
    hOut = GetStdHandle( STD_OUTPUT_HANDLE );

    while(1)
    {

        wczytaj();

        SetConsoleTextAttribute( hOut, 0x0006 );
        ile_prob=0;
        cout<<""<<endl;
        cout<<""<<endl;
        cout<<"---Promocja Swiateczna Trwa!----"<<endl;
        cout<<""<<endl;
        cout<<""<<endl;
        cout<<"-----MENU-----"<<endl;
        cout<<"1.Graj"<<endl;
        cout<<"2.Challanges"<<endl;
        cout<<"3.Sklep(Dostepne tylko w swieta!)"<<endl;
        cout<<"4.Wyjdz z gry"<<endl;
        cout<<"Twoje monety:"<<monety<<endl;
        cout<<"Twoj exp:"<<exp<<endl;
        cout<<"Twoj poziom:"<<poziom<<endl;
        cin>>wybor;


        //wyjscie z gry
        if(wybor==4)
        {
            zapisz();
            exit(0);
        }



        //Funkcja poziomów
        if(exp==100)
        {
            poziom = poziom + 1;
            exp = 0;
        }






        if(wybor==1)
        {
            SetConsoleTextAttribute( hOut, 0x0003 );
            cout<<"Witaj! Pomyslalem sobie liczbe 1..100"<<endl;

            srand(time(NULL));
            liczba = rand()%100+1;

            while(strzal!=liczba)
            {
                ile_prob++;
                SetConsoleTextAttribute( hOut, 0x0001 );
                cout<<"Zgadnij jaka (to Twoja "<<ile_prob<<" proba): ";
                cin>>strzal;

                if(strzal==liczba)
                {
                    SetConsoleTextAttribute( hOut, 0x00052 );
                    cout<<"Udalo sie! Wygrywasz w "<<ile_prob<<" probie"<<endl;
                    cout<<"Brawo zdobywasz 15 monet!"<<endl;
                    monety = monety + 15;
                    exp = exp + 50;
                }

                else if(strzal<liczba)
                {
                    SetConsoleTextAttribute( hOut, 0x0004 );
                    cout<<"To za malo"<<endl;
                }
                else if(strzal>liczba)
                {
                    SetConsoleTextAttribute( hOut, 0x0002 );
                    cout<<"To za duzo"<<endl;
                }
            }

            getchar();
            getchar(); //dla pewnosci 2 razy

        }









        //CHALLANGES!



        if(wybor==2)
        {
            cout<<"Lista challanegow: "<<endl;
            cout<<"1.Wygraj w mniej niz 10 probach!"<<endl;
            cout<<"2.Wygraj w mniej niz 5 probach!"<<endl;
            cout<<"3.Poradzisz sobie z 500 liczbami?"<<endl;
            cin>>wybor2;

            if(wybor2==1)
            {
                //1 challange
                SetConsoleTextAttribute( hOut, 0x0003 );
                cout<<"Witaj! Pomyslalem sobie liczbe 1..100"<<endl;
                srand(time(NULL));
                liczba = rand()%100+1;

                while(strzal!=liczba)
                {
                    ile_prob++;
                    SetConsoleTextAttribute( hOut, 0x0001 );
                    cout<<"Zgadnij jaka (to Twoja "<<ile_prob<<" proba): ";
                    cin>>strzal;


                    if(ile_prob>10)
                    {
                        SetConsoleTextAttribute( hOut, 0x0004 );
                        cout<<"Przegrales! :("<<endl;
                        exit(0);
                    }

                    if(strzal==liczba)
                    {
                        SetConsoleTextAttribute( hOut, 0x00052 );
                        cout<<"Udalo sie! Wygrywasz w "<<ile_prob<<" probie"<<endl;
                        cout<<"Brawo zdobywasz 20 monet!"<<endl;
                        monety = monety + 20;
                        exp = exp + 20;
                        ile_prob==0;
                    }
                    else if(strzal<liczba)
                    {
                        SetConsoleTextAttribute( hOut, 0x0004 );
                        cout<<"To za malo"<<endl;
                    }
                    else if(strzal>liczba)
                    {
                        SetConsoleTextAttribute( hOut, 0x0002 );
                        cout<<"To za duzo"<<endl;
                    }
                }

                getchar();
                getchar(); //dla pewnosci 2 razy
            }

            if(wybor2==2)
            {
                //1 challange
                SetConsoleTextAttribute( hOut, 0x0003 );
                cout<<"Witaj! Pomyslalem sobie liczbe 1..100"<<endl;
                srand(time(NULL));
                liczba = rand()%100+1;

                while(strzal!=liczba)
                {
                    ile_prob++;
                    SetConsoleTextAttribute( hOut, 0x0001 );
                    cout<<"Zgadnij jaka (to Twoja "<<ile_prob<<" proba): ";
                    cin>>strzal;


                    if(ile_prob>5)
                    {
                        SetConsoleTextAttribute( hOut, 0x0004 );
                        cout<<"Przegrales! :("<<endl;
                        exit(0);
                    }

                    if(strzal==liczba)
                    {
                        SetConsoleTextAttribute( hOut, 0x00052 );

                        cout<<"Udalo sie! Wygrywasz w "<<ile_prob<<" probie"<<endl;
                        cout<<"Brawo zdobywasz 25 monet!"<<endl;
                        monety = monety + 25;
                        exp = exp + 25;
                        ile_prob==0;
                    }
                    else if(strzal<liczba)
                    {
                        SetConsoleTextAttribute( hOut, 0x0004 );
                        cout<<"To za malo"<<endl;
                    }
                    else if(strzal>liczba)
                    {
                        SetConsoleTextAttribute( hOut, 0x0002 );
                       cout<<"To za duzo"<<endl;
                    }

                }

                getchar();
                getchar(); //dla pewnosci 2 razy
            }

            if(wybor2==3)
            {
                //1 challange
                SetConsoleTextAttribute( hOut, 0x0003 );
                cout<<"Witaj! Pomyslalem sobie liczbe 1..500"<<endl;
                srand(time(NULL));
                liczba = rand()%500+1;

                while(strzal!=liczba)
                {
                    ile_prob++;
                    SetConsoleTextAttribute( hOut, 0x0001 );
                    cout<<"Zgadnij jaka (to Twoja "<<ile_prob<<" proba): ";
                    cin>>strzal;



                    if(strzal==liczba)
                    {
                        SetConsoleTextAttribute( hOut, 0x00052 );
                        cout<<"Udalo sie! Wygrywasz w "<<ile_prob<<" probie"<<endl;
                        cout<<"Brawo zdobywasz 30 monet!"<<endl;
                        monety = monety + 30;
                        exp = exp + 30;
                        ile_prob==0;
                    }
                    else if(strzal<liczba)
                    {
                        SetConsoleTextAttribute( hOut, 0x0004 );
                        cout<<"To za malo"<<endl;
                    }

                    else if(strzal>liczba)
                    {
                        SetConsoleTextAttribute( hOut, 0x0002 );
                        cout<<"To za duzo"<<endl;
                    }

                }

                getchar();
                getchar(); //dla pewnosci 2 razy
            }


        }



        if(wybor==3)
        {
            cout<<"1.Dodatkowe monety! +10 monet!"<<endl;
            cout<<"2.Dodatkowy exp!"<<endl;


        }
    }
    return 0;
}

Mianowicie działa ale po zagraniu w grę monety i exp się nie dodają, jak zrobić coś by się dodawały ?

1
komentarz 22 grudnia 2016 przez zkkf56 Dyskutant (8,710 p.)
Ok doszedłem do rozwiązania ! Bardzo dziękuję i wesołych świąt życzę :). Bardzo bardzo pomogłeś :)

Podobne pytania

0 głosów
1 odpowiedź 203 wizyt
pytanie zadane 13 września 2015 w C i C++ przez C☺ndzi Stary wyjadacz (12,100 p.)
–1 głos
1 odpowiedź 3,560 wizyt
pytanie zadane 13 lutego 2017 w Systemy operacyjne, programy przez niezalogowany
+1 głos
0 odpowiedzi 211 wizyt
pytanie zadane 14 czerwca 2022 w Visual Basic przez MaroR Nowicjusz (150 p.)

92,570 zapytań

141,422 odpowiedzi

319,643 komentarzy

61,958 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!

...