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

Zapis/Odczyt c++

Object Storage Arubacloud
0 głosów
268 wizyt
pytanie zadane 28 stycznia 2018 w C i C++ przez Corson Początkujący (260 p.)

Siema, dalej bawie się tym projektem moim jednorękim bandytą i chciałbym stworzyć ranking czyli chodzi mi. Że program sam tworzy plik txt i tam zapisuje ranking np ilosc wydanych monet przez graczy i potem program wyswietla mi ten ranking czyli po prostu go wczytuje, ale siedze i normalnie włosy z głowy wyrywam i nie wiem kompletnie jak to ugryźć, zrobiłem coś ale to kompletnie nie działa i pewnie nawet nie o to chodzi. Przejrzałem poradniki i filmik Pana Zelenta 

#include <iostream>
#include <conio.h>
#include <windows.h>
#include <cstdlib>
#include <ctime>
#include <string>
#include <fstream>
using namespace std; 

void dolary()
{
	HANDLE hOut;
hOut = GetStdHandle( STD_OUTPUT_HANDLE );
SetConsoleTextAttribute( hOut, FOREGROUND_GREEN | FOREGROUND_INTENSITY );
cout<<"   $ $          $ $         $ $          $ $     "<<endl;
cout<<"  $$$$$        $$$$$       $$$$$        $$$$$    "<<endl;
cout<<" $ $ $        $ $ $       $ $ $        $ $ $     "<<endl;
cout<<"  $$$$$        $$$$$       $$$$$        $$$$$    "<<endl;
cout<<"   $ $ $        $ $ $       $ $ $        $ $ $   "<<endl;
cout<<"  $$$$$        $$$$$       $$$$$        $$$$$    "<<endl;
cout<<"   $ $          $ $         $ $          $ $     "<<endl;
SetConsoleTextAttribute( hOut, 0 );
SetConsoleTextAttribute( hOut, FOREGROUND_GREEN | FOREGROUND_BLUE | FOREGROUND_RED );
}
void moneta()
{
	cout<<"   __         "<<endl;
	cout<<"  |  |.....   "<<endl;
	cout<<"  | .|     .  "<<endl;
	cout<<"  |. |      .  "<<endl;
	cout<<"  |. |      .  "<<endl;
	cout<<"  |. |      . "<<endl;
	cout<<"  | .|     . "<<endl;
	cout<<"  |__|.....  "<<endl;
	
	
	
	
}


void nazwa()
{
	
HANDLE hOut;
hOut = GetStdHandle( STD_OUTPUT_HANDLE );
SetConsoleTextAttribute( hOut, FOREGROUND_RED | FOREGROUND_INTENSITY );		
cout<<"|=================================|"<<endl;	
cout<<"|R RRR     OOOOO    L       L     | "<<endl;
cout<<"|R    R   O     O   L       L     |" <<endl;
cout<<"|R    R  O       O  L       L     |" <<endl;
cout<<"|R RRR   O       O  L       L     |"<<endl;    
cout<<"|R   R   O       O  L       L     |"<<endl;
cout<<"|R    R   O     O   L       L     |" <<endl;
cout<<"|R    R    OOOOO    L LLLL  L LLLL|"<<endl; 
cout<<"|=================================|"<<endl;
SetConsoleTextAttribute( hOut, 0 );
SetConsoleTextAttribute( hOut, FOREGROUND_GREEN | FOREGROUND_BLUE | FOREGROUND_RED );
}



int main(int argc, char** argv) {
	
	HANDLE hOut;
    hOut = GetStdHandle( STD_OUTPUT_HANDLE );          
	nazwa();
    setlocale(LC_ALL, "");
    srand(time(NULL));

    int wybor;
    string imie;
    cout << "Podaj swój nick" << endl;
    cin >> imie;
    system("cls");

    cout << "Witaj" << " " << imie << endl;
    Sleep(2000);
    system("cls");
	 
    int papa=1;
	
    do
    {
		
        int monety=0;
        
        moneta();
        cout << "Podaj ile chcesz wrzucić monet" << endl;
        cin >> monety;
        if (monety > 10)
        {
            cout << "Możesz wrzucić tylko 10 monet po nominale 1" << endl;
            continue;
        } 
        
        while (monety--)
        {
				
            int tabo[3] = {};
            cout << "1.Nowa gra" << endl;
            cout << "2.Ranking" << endl;
            cout << "3.Koniec"<<endl;
            cin >> wybor;
            switch (wybor) {
            case 1:
                cout << "Losowanie!" << endl;
                Sleep(1000);
                system("cls");
                for (int i = 0; i < 3; i++) {
                    tabo[i] = rand() % 9 + 1;
                    cout << tabo[i];
                }
                cout << endl;

                if ((tabo[1] == tabo[0]) && (tabo[2] == tabo[0])) {
                    cout << "Wygrałeś!" << endl;
                    dolary();
                }
                else if (tabo[1] == tabo[0]) {

                    tabo[2] = rand() % 9 + 1;
                    cout << tabo[0] << tabo[1] << tabo[2] << endl;
                    if (tabo[2] == tabo[0]) {
                        cout << "Wygrałeś!" << endl;
                        dolary();
                    }
                }
                else if (tabo[2] == tabo[0]) {

                    tabo[1] = rand() % 9 + 1;
                    cout << tabo[0] << tabo[1] << tabo[2] << endl;
                    if (tabo[1] == tabo[0]) {
                        cout << "Wygrałeś!" << endl;
                        dolary();
                    }
                }
                else if (tabo[2] == tabo[1]) {

                    tabo[0] = rand() % 9 + 1;
                    cout << tabo[0] << tabo[1] << tabo[2] << endl;
                    if (tabo[0] == tabo[1]) {
                        cout << "Wygrałeś!" << endl;
                      	dolary();
                    }
                }else
				
                
                break;

            case 2:
                fstream plik;
                plik.open("ranking.txt", ios::out | ios::app);
                cout<<imie<<"wydał monet"<<monety<<endl;
                
                plik.close();
                break;
            
            case 3:
				exit (0);
				break;    
            }

            if (monety<=0)
            	cout<<"Nie masz już więcej monet na grę"<<endl;
        }

        cout << "Czy chcesz zagrać ponownie ?"<<endl;
        cout << "1.Tak" << endl << "2.Nie" << endl;
        
        cin >> papa;
    } while (papa == 1);


    return 0;
}

 

2 odpowiedzi

0 głosów
odpowiedź 28 stycznia 2018 przez Secrus Nałogowiec (32,880 p.)
W menu masz opcję ranking, ale w kodzie po wybraniu jej jedyne co osiągasz to zapisanie obecnego stanu zmiennych DO pliku. Z tego co rozumiem, to chodzi Ci o możliwość czytania Z pliku. przejrzyj jeszcze raz odcinek p.Zelenta o pracy z plikami.

Ogólnie to podzieliłbym trochę program na pomniejsze funkcje odpowiadające za konkretne funkcjonalności. Łatwiej będzie Ci wtedy odszukiwać błędy.
komentarz 28 stycznia 2018 przez Corson Początkujący (260 p.)
Już oglądałem go kilkakrotnie nie mam kompletnego pojęcią jak to zrobić żeby działało ;/
komentarz 28 stycznia 2018 przez Secrus Nałogowiec (32,880 p.)
Wez kartkę, rozpisz sobie krok po kroku (jesli umiesz dobrze to schematem blokowym mozesz) co chcesz osiagnac. Jak to zrobisz to przeanalizuj kod programu krok po kroku i sprawdz czy pokrywa sie z tym co masz na kartce. Blad jest prosty, dokladnie wskazalem ci co zrobiles zle. Mysl, dzialaj

 

PS bledami sie nie zrazaj. Kazdy koder popelnia bledy, osobiscie kiedys 3h szukalem, jak sie okazalo, srednika na koncu linii.
0 głosów
odpowiedź 29 stycznia 2018 przez Beginer Pasjonat (22,110 p.)
Zrób inne podejście. Równolegle, obok napisz prosty, oddzielny program tylko do zapisu i odczytu pliku .txt. Tutaj, na początek spróbuj zapisać ji odczytać jakieś proste dane. W ten sposób nauczysz się funkcji zapis/odczyt i rozwiążesz swój problem.

Podobne pytania

0 głosów
1 odpowiedź 297 wizyt
pytanie zadane 21 stycznia 2018 w C i C++ przez Adrian Radojewski Nowicjusz (120 p.)
0 głosów
1 odpowiedź 1,830 wizyt
0 głosów
1 odpowiedź 1,162 wizyt
pytanie zadane 24 sierpnia 2017 w C i C++ przez Vendari Nowicjusz (150 p.)

92,575 zapytań

141,424 odpowiedzi

319,649 komentarzy

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

...