Obiektowa obluga plikow C++
Ostatnio zmodyfikowano 2010-03-16 23:02
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 :) #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; }
|
|
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? |
|
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? ;) |
|
Elaine |
» 2010-03-15 21:50:23 W klasie czlowiek. W konstruktorze alokujesz pamięć, a destruktor jest domyślny, więc jej nie zwalnia. |
|
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? ;/ |
|
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ć. |
|
Elaine |
» 2010-03-16 22:59:41 Jemu akurat chodzi o to, żeby konsola się pojawiała ;) |
|
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) ;) |
|
« 1 » |