|
[ Milan Aksic @ 17.02.2002. 15:47 ] @
| Ovaj se kod korektno izvrsava na BC++, upise objekat i kasnije ga vrati iz fajla, upravo ono sto bi i trebalo da radi, ali u Dev-C++ ne radi, odnosno radi, ali ne ubacuje objekat u fajl vec ga samo otvori i fajl ostaje prazan: Code:
#include <stdlib.h>
#include <fstream.h>
class Test
{
public:
Test(int weight, long days):itsWeight(weight), itsNumbersDaysAlive(days){}
~Test(){}
int GetWeight() const { return itsWeight; }
void SetWeight(int weight) { itsWeight = weight; }
long GetDaysAlive() const { return itsNumbersDaysAlive; }
void SetDaysAlive(long days) { itsNumbersDaysAlive = days; }
private:
int itsWeight;
long itsNumbersDaysAlive;
};
int main()
{
char fileName[80];
cout << "Please enter the file name: ";
cin >> fileName;
ofstream fout(fileName, ios::binary);
if (!fout)
{
cout << "Unable to open " << fileName << " for writing.\n";
return(1);
}
Test T1(50, 100);
fout.write((char *) &T1, sizeof T1);
fout.close();
ifstream fin(fileName, ios::binary);
if (!fin)
{
cout << "Unable to open " << fileName << " fo reading.\n";
return(1);
}
Test T2(1, 1);
cout << "T2 weight: " << T2.GetWeight() << endl;
cout << "T2 days: " << T2.GetDaysAlive() << endl;
fin.read((char *) &T2, sizeof T2);
cout << "T2 weight: " << T2.GetWeight() << endl;
cout << "T2 days: " << T2.GetDaysAlive() << endl;
fin.close();
system("pause");
return 0;
}
U cemu je problem? |
[ leka @ 25.02.2002. 14:31 ] @
Passanger, izvini sto ti ovako kasno odgovaram na pitanje - nisam ga video ako mi verujes - ne znam u cemu je problem, ja sam zapravo samo main() izmenio.
Elem, "ispravan" source sam ti "zalepio" ovde, a evo rezultata koji sam dobio kada sam kompajlirao i izvrsio program:
Code:
Please enter the file name: trt
T2 weight: 1
T2 days: 1
T2 weight: 1
T2 days: 1
Press any key to continue . . .
[ Ovu poruku je menjao leka dana 25.02.2002 u 03:36 PM GMT]
[ Ovu poruku je menjao leka dana 25.02.2002 u 03:39 PM GMT]
[ alex @ 25.02.2002. 14:59 ] @
Citat: leka:
problem je sto GNU ne dozvoljava main() verovo ili ne, to je Microsoft izmisljotina...
Izvini na upadu, Leko, ali - kakva je ovo izjava??
[ leka @ 25.02.2002. 15:40 ] @
Alex, skroz si u pravu lupetam... Mislio sam da je stvar do MinGW-a koji dolazi uz DevC++, ali nije... Svejedno, lupio sam zestoko! :)
[Ovu poruku je menjao Ivan Dimkovic dana 25.02.2002 u 05:38 PM GMT]
[ Milan Aksic @ 25.02.2002. 16:00 ] @
Citat: leka:
Passanger, izvini sto ti ovako kasno odgovaram na pitanje - nisam ga video ako mi verujes - ne znam u cemu je problem, ja sam zapravo samo main() izmenio.
Elem, "ispravan" source sam ti "zalepio" ovde, a evo rezultata koji sam dobio kada sam kompajlirao i izvrsio program:
Code:
Please enter the file name: trt
T2 weight: 1
T2 days: 1
T2 weight: 1
T2 days: 1
Press any key to continue . . .
[ Ovu poruku je menjao leka dana 25.02.2002 u 03:36 PM GMT]
[ Ovu poruku je menjao leka dana 25.02.2002 u 03:39 PM GMT]
Izvini Leko, bojim se da te nisam razumeo ?
hm... nema sourca koji si mi zalepio :)
U vezi outputa, to isto i ja dobijam, jednostavno ne upise klasu u fajl iz kojeg se kasnije uzimaju podaci!
Samo da napomenem, da ovaj source radi ispravno, preveden u Borland C++.
[ Ivan Dimkovic @ 25.02.2002. 16:39 ] @
[quote]leka:
Alex, skroz si u pravu lupetam... Mislio sam da je stvar do MinGW-a koji dolazi uz DevC++, ali nije... Svejedno, lupio sam zestoko! :)
:) Ali si uspeo da pljucnes svog krvnog neprijatelja - Microsoft :) Xexe.. stari dobri Leka :)
*just joking*
[ leka @ 25.02.2002. 16:51 ] @
Izgleda da se problem moze resiti jednim lepim memcpy() ... Videcu ako imadnem vremena da se poigram sa tim...
[ leka @ 25.02.2002. 18:12 ] @
Proverio sam - MinGW radi okej... GCC je to :) Problem je zapravo u jednoj liniji koju Borland C++ GUTA, a GCC ne guta... Normala, Borland je naucio da Windows programeri prave greske ko ludi, tako da su morali verovatno da dodaju jos nekoliko hiljada ispitivanja i da poprave sto se moze...
[ Dragi Tata @ 25.02.2002. 18:22 ] @
Citat: leka:
Proverio sam - MinGW radi okej... GCC je to :) Problem je zapravo u jednoj liniji
Nego, Leko, izvini što skrećem sa teme, ali "skinuo" sam MinGW pre nekoliko meseci i ispostavilo se da mu fali podrška za wide-char u C++u (nema wostream uopšte). Pogledao sam i na gcc-u koji ide uz Mandrake 7.2 i video isti problem. Znaš li ti nešto o tome? Treba li da skinem neki dodatni zip, ili šta?
[ Milan Aksic @ 25.02.2002. 19:45 ] @
Citat: leka:
Proverio sam - MinGW radi okej... GCC je to :) Problem je zapravo u jednoj liniji koju Borland C++ GUTA, a GCC ne guta... Normala, Borland je naucio da Windows programeri prave greske ko ludi, tako da su morali verovatno da dodaju jos nekoliko hiljada ispitivanja i da poprave sto se moze...
:) Ok Leko samo reci koja linija, gde, sta kako :) ?
I (najvaznije) da li/kako moze da se ispravi ?
[ Milan Aksic @ 28.02.2002. 03:13 ] @
Postavio sam isto pitanje na Dev-C++ forumu ni oni ne znaju o cemu je recu, nasli su samo za shodno da mi preporuce da ne koristim strimove :p
Copyright (C) 2001-2025 by www.elitesecurity.org. All rights reserved.
|