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

Nie moge zapisac pliku do .txt

Cloud VPS
0 głosów
540 wizyt
pytanie zadane 19 października 2015 w C i C++ przez kwiats Nowicjusz (200 p.)

Witam :) 

Napisałem program , tylko mam malutki problem po probie uruchomienia programu wyskakuje mi blad :

||=== Build: Debug in objeckt1 (compiler: GNU GCC Compiler) ===|
D:\Programowanie\Obiektowy\objeckt1\main.cpp|52|error: 'plik' does not name a type|
D:\Programowanie\Obiektowy\objeckt1\main.cpp|54|error: 'plik' does not name a type|
D:\Programowanie\Obiektowy\objeckt1\main.cpp|55|error: 'plik' does not name a type|
D:\Programowanie\Obiektowy\objeckt1\main.cpp|56|error: 'plik' does not name a type|
D:\Programowanie\Obiektowy\objeckt1\main.cpp|59|error: 'plik' does not name a type|
||=== Build failed: 5 error(s), 0 warning(s) (0 minute(s), 0 second(s)) ===|

Teraz podam wam kod mojego programu : 

 

#include <iostream>
#include <fstream>

using namespace std;

 

class Zwierze
{
    public:

    //atrybuty
    string gatunek;
    string imie;
    int wiek;

    //metody

    void dodaj_zwierze()
    {
        cout<<"DODAWANIE NOWEGO ZWIERZATKA DO BAZY (kot,koza,krowa): "<<endl;
        cout<<"Podaj gatunek: ";
        cin>>gatunek;
        cout<<"Podaj imie: ";
        cin>>imie;
        cout<<"Podaj wiek: ";
        cin>>wiek;
    }
    void daj_glos()
    {
             if(gatunek=="kot")
            {
                cout<<"Zwierze o imieniu: "<<imie<<endl;
                cout<<"Jego wiek wynosi: "<<wiek;
            }

        else if(gatunek=="koza")
            {
                cout<<"Zwierze o imieniu: "<<imie<<endl;
                cout<<"Jego wiek wynosi: "<<wiek;
            }
        else if(gatunek=="krowa")
            {
                cout<<"Zwierze o imieniu: "<<imie<<endl;
                cout<<"Jego wiek wynosi: "<<wiek;
            }
        else cout<<"Nieznany gatunek! Moze jakies UFO?!";


    }
    fstream plik;
    plik.open("zwierzeta.txt", ios::out | ios::app);

        plik<<gatunek<<endl;
        plik<<imie<<endl;
        plik<<wiek<<endl;


    plik.close();
    
};

int main()
{
    Zwierze q1;
    q1.dodaj_zwierze();
    q1.daj_glos();

    return 0;
}

 

 

Jak mam sobie z tym problemem poradzic ? :) Z góry bardzo dziekuje ;)

1 odpowiedź

+1 głos
odpowiedź 19 października 2015 przez Radfler VIP (101,030 p.)
wybrane 19 października 2015 przez kwiats
 
Najlepsza
fstream plik;
    plik.open("zwierzeta.txt", ios::out | ios::app);

        plik<<gatunek<<endl;
        plik<<imie<<endl;
        plik<<wiek<<endl;


    plik.close(); 

Ten fragment kodu powinien znaleźć się w funkcji. Takie pisanie "na zewnątrz" nie jest możliwe ;)

komentarz 19 października 2015 przez kwiats Nowicjusz (200 p.)
czyli jak mam dodac ten fragment kodu do tej funkcji ? :)
komentarz 19 października 2015 przez Radfler VIP (101,030 p.)

No np. stwórz funkcję składową zapiszDoPliku() i umieść w niej ten kod. BTW plik.close() jest nie potrzebne ;)

komentarz 19 października 2015 przez niezalogowany
void zapisz_do_pliku() // wewnątrz definicji klasy
{
 ... // <- kod który podał @Radfler
}
komentarz 19 października 2015 przez kwiats Nowicjusz (200 p.)
Zrobiłem tak jak mowicie , ale niestety nie tworzy mi tego pliku ani nic nie zapisuje :(
komentarz 19 października 2015 przez kwiats Nowicjusz (200 p.)

#include <iostream>
#include <fstream>

using namespace std;

 

class Zwierze
{
    public:

    //atrybuty
    string gatunek;
    string imie;
    int wiek;

    //metody

    void dodaj_zwierze()
    {
        cout<<"DODAWANIE NOWEGO ZWIERZATKA DO BAZY (kot,koza,krowa): "<<endl;
        cout<<"Podaj gatunek: ";
        cin>>gatunek;
        cout<<"Podaj imie: ";
        cin>>imie;
        cout<<"Podaj wiek: ";
        cin>>wiek;
    }
    void daj_glos()
    {
             if(gatunek=="kot")
            {
                cout<<"Zwierze o imieniu: "<<imie<<endl;
                cout<<"Jego wiek wynosi: "<<wiek;
            }

        else if(gatunek=="koza")
            {
                cout<<"Zwierze o imieniu: "<<imie<<endl;
                cout<<"Jego wiek wynosi: "<<wiek;
            }
        else if(gatunek=="krowa")
            {
                cout<<"Zwierze o imieniu: "<<imie<<endl;
                cout<<"Jego wiek wynosi: "<<wiek;
            }
        else cout<<"Nieznany gatunek! Moze jakies UFO?!";


    }
    void zapisac_do_pliku()
    {
    fstream plik;
    plik.open("zwierzeta.txt", ios::out | ios::app);

        plik<<gatunek<<endl;
        plik<<imie<<endl;
        plik<<wiek<<endl;

    }

};

int main()
{
    Zwierze q1;
    q1.dodaj_zwierze();
    q1.daj_glos();

    return 0;
}

komentarz 19 października 2015 przez furas Maniak (53,800 p.)
Teraz jeszcze musisz uruchomić zapisz_do_pliku() tak jak uruchamiasz dodaj_zwierze() czy daj_glos().

Podobne pytania

0 głosów
2 odpowiedzi 978 wizyt
0 głosów
2 odpowiedzi 1,966 wizyt
pytanie zadane 9 lipca 2015 w C i C++ przez Avernis Nałogowiec (27,400 p.)
0 głosów
2 odpowiedzi 3,619 wizyt
pytanie zadane 16 sierpnia 2015 w C i C++ przez mcjulcz44 Użytkownik (810 p.)

93,469 zapytań

142,404 odpowiedzi

322,716 komentarzy

62,852 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

Kursy INF.02 i INF.03
...