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

Jak zrobić save c++?

Mały hosting, OGROMNE możliwości
0 głosów
819 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ź 339 wizyt
pytanie zadane 13 września 2015 w C i C++ przez C☺ndzi Stary wyjadacz (12,100 p.)
–1 głos
1 odpowiedź 4,244 wizyt
pytanie zadane 13 lutego 2017 w Systemy operacyjne, programy przez niezalogowany
+1 głos
0 odpowiedzi 924 wizyt
pytanie zadane 14 czerwca 2022 w Visual Basic przez MaroR Nowicjusz (150 p.)

93,718 zapytań

142,631 odpowiedzi

323,262 komentarzy

63,266 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.

...