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

question-closed Co mam źle w kodzie?

Object Storage Arubacloud
+1 głos
202 wizyt
pytanie zadane 15 czerwca 2015 w C i C++ przez Zuluuu Nowicjusz (190 p.)
zamknięte 15 czerwca 2015 przez krecik1334
Czy mógłby mi ktoś powiedzieć co jest nie tak w kodzie? Wywala mi błąd gdy chce zapisać listę do pliku w case 2 w switchu:)
 

#include <iostream>
#include <fstream>
#include <string>
#include <vector>
#include <windows.h>

using namespace std;

 

class samochod
{

public:
    string kolor, marka,nw,nr;
    int wiek,ps;

    samochod(string kol="niebieski", string mark="Honda", string nww="Kowalski", string nrr="Dw650", int wie=10, int pss=2000) :kolor(kol), marka(mark), nw(nww), nr(nrr), wiek(wie), ps(pss)
    {}
    void wczytaj()
    {
        string linia;
        ifstream plik;
        plik.open("mytmp.txt");
        if (plik.good() == false)    cout << "nie udało sie otworzyc pliku" << endl;
        else
        while (getline(plik, linia))
        {
            cout << linia << endl;
        }

        }
    
    void ZapiszDoPliku(vector<samochod>&lista, string fileName)
    {

        ofstream plik;
        plik.open(fileName, ios::out | ios::app);
        if (plik.good() == false) cout << "nie udało sie otworzyc pliku" << endl;
        else for (int i = 0; i<lista.size(); i++)
        {
            string tmp;
            tmp = lista[i].kolor + " ; " + lista[i].marka + " ; " + lista[i].nw + " ; " + lista[i].nr + " ; " + to_string(lista[i].wiek) + " ; " + to_string(lista[i].ps);
            plik << tmp << "\n";
        }

    }
};

int main()
{
    samochod tmp;
    vector<samochod> lista;
    int wybor;
    do
    {
        system("cls");
        cout << "Kolor ; Marka ; Nazwa wlasciciela ; Nr rejestracyjny ; Wiek ; Poj. silnika " << endl;
        cout << "---------------------------------------------------------------------------" << endl;
        tmp.wczytaj();
        cout << "---------------------------------------------------------------------------" << endl << endl;
        cout << "1.Dodaj samochod do listy: " << endl;
        cout << "2.Wyjdz: " << endl;
        cout << "Co chcesz zrobic?: " << endl;
        cin >> wybor;
        switch (wybor)
        {
        case 1:
            int ile;
            cout << "Ile samochodow chcesz dodac do listy?: " << endl;
            cin >> ile;
            for (int i = 0; i < ile; i++)
            {
                cout << "Podaj kolor samochodu: \n";
                cin >> tmp.kolor;
                cout << "Podaj marke samochodu: \n";
                cin >> tmp.marka;
                cout << "Podaj nazwe wlasciciela samochodu: \n";
                cin >> tmp.nw;
                cout << "Podaj nr rejestracyjny samochodu: \n";
                cin >> tmp.nr;
                cout << "Podaj wiek samochodu: \n";
                cin >> tmp.wiek;
                cout << "Podaj pojemnosc silnika samochodu: \n";
                cin >> tmp.ps;
                lista.push_back(tmp);
            }
            tmp.ZapiszDoPliku(lista, "mytmp.txt");
            break;
        case 2:
            exit(0);
            break;

        default:
            cout << "POMYLKA";
            Sleep(2000);
            break;
        }
    } while (wybor !=2);

    
    
    system("PAUSE");

    return 0;

}
komentarz zamknięcia: temat wyjaśniony

1 odpowiedź

+1 głos
odpowiedź 15 czerwca 2015 przez draghan VIP (106,230 p.)
Jaki błąd Ci "wywala"? Wiesz, to bardzo cenna wiedza. ;)

A poza tym w 'case 2 w switchu' masz funkcję exit(0). ;)

Tak w ogóle to co to za dziwna moda na używanie extit() w main()? Przecież jak się rzuci zwykłego returna, efekt będzie tożsamy, a nie będzie trzeba wołać dodatkowej funkcji z osobnego nagłówka...
komentarz 15 czerwca 2015 przez Zuluuu Nowicjusz (190 p.)
wybacz chodzi o case 1, juz sobie z tym poradziłem, dzięki za odpowiedź :)
komentarz 15 czerwca 2015 przez draghan VIP (106,230 p.)

Cieszy mnie to. :) Powodzenia! :) yes

Podobne pytania

0 głosów
2 odpowiedzi 514 wizyt
pytanie zadane 29 października 2017 w C i C++ przez maksymilian467 Nowicjusz (160 p.)
0 głosów
1 odpowiedź 355 wizyt
pytanie zadane 21 grudnia 2022 w C# przez Mrevus Nowicjusz (120 p.)
0 głosów
4 odpowiedzi 271 wizyt

92,632 zapytań

141,500 odpowiedzi

319,880 komentarzy

62,013 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!

...