Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Obiektowa obluga plikow C++

Ostatnio zmodyfikowano 2010-03-16 23:02
Autor Wiadomość
bartek483
Temat założony przez niniejszego użytkownika
Obiektowa obluga plikow C++
» 2010-03-15 17:09:12
Witamm

Kod napisany przeze mnie kompiluje sie ale nie wyswietla sie konsola, moglby mi ktos powiedziec czy dobrze mam napisany kod? Oczywiscie dane ma zapisywac do pliku ktorego ja podam nazwe, podaje kod: Z gory dzieki :)


C/C++
#include <iostream>
#include <conio.h>
#include <fstream>
#include <string.h>

using namespace std;

class czlowiek
{
private:
    int wiek;
    char * imie;
   
public:
    czlowiek( int wi, const char * const im )
        : wiek( wi )
    {
        imie = new char[ 50 ];
        strcpy( imie, im );
    }
   
    friend ostream & operator <<( ostream & wyjscie, const czlowiek & osoba );
    virtual void zapis_do_pliku( ofstream & s );
};

ostream & operator <<( ostream & wyjscie, const czlowiek & osoba )
{
    wyjscie << "Wiek " << osoba.wiek << " Imie " << osoba.imie << "\n";
    return wyjscie;
}

void czlowiek::zapis_do_pliku( ofstream & s )
{
    s << wiek << "  " << imie << "\n";
}

int main()
{
    int wi;
    char im[ 50 ];
    char _plik[ 50 ];
   
    cout << "Podaj imie: ";
    cin >> im;
    cout << "Podaj wiek: ";
    cin >> wi;
   
    czlowiek osoba( wi, im );
   
    cout << "Podaj nazwe pliku do obiektu: ";
    cin >> _plik;
   
    ofstream plik( _plik );
    osoba.zapis_do_pliku( plik );
   
    plik.close();
   
   
    _getch();
    return 0;
}
P-15067
Elaine
» 2010-03-15 17:13:31
U mnie działa. Zmień w opcjach linkera subsystem na "console" lub podobnie brzmiącą opcję.

...wiesz, że masz memleak?
P-15068
bartek483
Temat założony przez niniejszego użytkownika
» 2010-03-15 20:01:38
Dzieki bo juz myslalem ze program jest zle napisany.
Memleak? a gdzie? ;)
P-15082
Elaine
» 2010-03-15 21:50:23
W klasie czlowiek. W konstruktorze alokujesz pamięć, a destruktor jest domyślny, więc jej nie zwalnia.
P-15095
bartek483
Temat założony przez niniejszego użytkownika
» 2010-03-16 22:21:36
Aha ok, dzieki ; )

A jeszcze mam jedno pytanko, gdzie sie w dev c++ ustawia te opcje linkera bo caly czas konsola mi sie nie chce otworzyc? ;/
P-15123
lynx
» 2010-03-16 22:56:01
Prawym kliknij na ikonkę projektu tam powinno być coś w stylu "Opcje Projektu", następnie wybierz Projekt GUI(lub coś podobnego), konsola wtedy powinna przestać się pojawiać.
P-15124
Elaine
» 2010-03-16 22:59:41
Jemu akurat chodzi o to, żeby konsola się pojawiała ;)
P-15125
lynx
» 2010-03-16 23:02:54
Ojć sorry ;p  mała wpadka :p
No ale to analogicznie zamiast Projekt Win32 GUI ustawić Win32 Console.(albo coś podobnego) ;)
P-15126
« 1 »
  Strona 1 z 1