Newsgroup: it.comp.lang.c++
Titolo: Aiuto per scrivere su un file .dat

Salve a tutto il NG!
Un paio di giorno fa ho scaricato l'ebook per creare applicazioni in c++ con
i database, ma ho avuto un problema con un listato che di seguito vi
fornisco. Non riesco a creare il file data.dat e non so perché, qualcuno mi
può dare qualche suggerimento e/o aiuto?
Grazie anticipatamente
#include <fstream.h>
struct Date
{
 int iMonth, iDay, iYear;
};
struct Product
{
 int iPartNumber;
 char szName[80];
 double iPrice;
};
struct Customer
{
 int iId;
 char szName[50];
 char szAddress[50];
 char szCity[20];
 char szState[20];
 char szZip[9];
};
void main()
{
 Date dt = { 6, 10, 92};
 Product prod = { 122, "Vegamatic", 19.95};
 Customer cust = { 15, "Seymore Hoskins", "3000 Oak St", "Boring", "Oregon",
"97203"};
 ofstream datafile = ("data.dat", ios::binary);
 datafile.write((char*) &dt, sizeof(dt));
 datafile.write((char*) &prod, sizeof(prod));
 datafile.write((char*) &cust, sizeof(cust));
}

 }
usa i cast del c++ se puoi (reinterpret_cast, in questo caso).
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

 ha scritto nel messaggio
news:atngmp$s58$1...@news.newsland.it...

Scusate, l'ho dimenticato a specificare, il programma viene compilato, ma
non crea il file quando lo avvio.
Non conosco i cast di c++, puoi dirmi cosa sono?
Grazie ancora

 Non conosco i cast di c++, puoi dirmi cosa sono?
i cast del c++ sono:
- static_cast
- const_cast
- reinterpret_cast
- dynamic_cast
per una loro trattazione esauriente ti rimando ad un buon testo c++ perchč
sarebbe un po' lunga. In ogni caso non č questa la causa del fallimento
del tuo programma. Ora come ora non so dirti di piů, proverň a compilare
il tuo programma e a vedere se funziona. 


 ha scritto nel messaggio
news:atnhhm$ufl$1...@news.newsland.it...

Ti ringrazio Simone

ecco, questo mi compila (su Borland C++ 5.5.1) e crea il file
correttamente:
#include <fstream>
struct Date
{
 int iMonth, iDay, iYear;
};
struct Product
{
 int iPartNumber;
 char szName[80];
 double iPrice;
};
struct Customer
{
 int iId;
 char szName[50];
 char szAddress[50];
 char szCity[20];
 char szState[20];
 char szZip[9];
};
int main()
{
 Date dt = { 6, 10, 92};
 Product prod = { 122, "Vegamatic", 19.95};
 Customer cust = { 15, "Seymore Hoskins", "3000 Oak St", "Boring",
"Oregon",
 "97203"};
 std::ofstream datafile ("data.dat", std::ios_base::binary);
    //    qui avevi scritto
    //    ofstream datafile = ("data.dat", ios::binary);
    //    come vedi c'è un = di troppo, mi era sfuggito.
    //    non avrebbe dovuto compilare però...
 datafile.write(reinterpret_cast <char*> (&dt), sizeof dt);
 datafile.write(reinterpret_cast <char*> (&prod), sizeof prod);
 datafile.write(reinterpret_cast <char*> (&cust), sizeof cust);
}

 ha scritto nel messaggio
news:rVLL9.25808$Ou4.7...@twister2.libero.it...

Ti ringrazio Simone.
Non so il perché ha compilato lo stesso, ma questo è un esempio lampante che
avvolte anche i libri su cui studiamo non sono scritti bene (ed è in inglese
... pensa se era tradotto in italiano).
Grazie di tutto.
Colgo l'occasione per augurarvi a tutti quanti un FELICE NATALE!!!!

 >
toglietemi un dubbio
ma non si dovrebbe chiudere  il file  per   crearlo?
