mii-community/UsenetArchiveIT-conversations huggingface dataset:
Newsgroup: it.comp.lang.c++
Titolo: classe contenente array di record

ciao a tutti,
devo implementare una classe "ElencoPrenotati" che deve contenere un array
contenente N record. La dimensione dell'array (allocato dinamicamente) viene
fornita come parametro al costruttore della classe. I record sono costituiti
da una struttura "Studente" che ha 3 campi (nome, cognome, matricola) di
tipo string. Devo implementare le seguenti funzioni:
-inserimento di uno studente il cui prototipo deve essere bool
insert(Studente e); //restituisce true se l'inserimento va abuon fine.
-stampa a video della rubrica, il prototipo deve essere void stampa();
la traccia dell'esercizio fornisce anche il main. Purtroppo ricevo questi
errori:
9 elencoprenotati.cpp  `array' undeclared (first use this function)
l'errore è ovvio (l'array in insert() non è dichiarato) ma come porvi
rimedio???
ecco il codice:
**MAIN.CPP
#include <iostream>
#include <stdio.h>
#include "ElencoPrenotati.h"
int main(){
    Studente r;
    ElencoPrenotati elenco(10);
    r.cognome="Esposito"; r.nome="Francesco"; r.matricola="36596";
    elenco.insert(r);
    r.cognome="Paccado"; r.nome="Maurizio"; r.matricola="36296";
    elenco.insert(r);
    r.cognome="Zamboni"; r.nome="Stefano"; r.matricola="36291";
    elenco.insert(r);
    elenco.stampa();
    r.cognome="Accardo"; r.nome="Domenico"; r.matricola="36293";
    elenco.insert(r);
    elenco.stampa();
    //elenco.ordina();
    elenco.stampa();
    system("Pause");
return 0;
}
***ElencoPrenotati.h
#ifndef _ELENCOPRENOTATI_H
#define ELENCOPRENOTATI_H
#include <iostream>
#include <string>
struct Studente {
       string nome;
       string cognome;
       string matricola;
};
typedef Studente* Record;
class ElencoPrenotati {
      private:
      int last; //punta all'ultimo elemento inserito nell'array
      public:
        ElencoPrenotati(int n);
        ~ElencoPrenotati();
        bool insert(Studente &);
        void stampa();
};
#endif
***ElencoPrenotati.cpp
#include "ElencoPrenotati.h"
ElencoPrenotati::ElencoPrenotati(int n){
   Record array;
   array=new Studente[n];
}
bool ElencoPrenotati::insert(Studente & r){
     array[last].nome=r.nome;
     array[last].cognome=r.cognome;
     array[last].matricola=r.matricola;
     last=last+1;
     return true;
}
void ElencoPrenotati::stampa(){
     for(int I=0; I<last; I++){
                  cout<<"cognome:"<< array[I].cognome << endl;
                  cout<<"nome:"<< array[I].nome << endl;
                  cout<<"matricola:"<< array[I].matricola << endl;
                  cout<<"************************" << endl;
             }
}
ElencoPrenotati::~ElencoPrenotati(){
     for(int i=0; i<last; i++){
                  delete [] array;
             }
          cout<<"array deallocato";
}
ciao!

 }
-- 
Domenico Testa - Studente
Newsgroup: it.comp.lang.c++
Titolo: media aritmetica non stampa

Sapreste dirmi cosa è sbagliato?
/*Dati n numeri da la loro media*/
#include <iostream>
using namespace std;
int tot, n, somma=0;
float media;
int main()
{
  cout<<"Quanti numeri? ";
      cin>>tot;
  cout<<"Inserisci numeri interi: ";
       cin>>n;
    while (tot!=0)
    {
    tot--;
    cin>>n;
    somma= somma+n;
     }
media= somma/tot;
cout<<"Media"<<media;
return 0;
}
Grazie...

 cout<<"Media"<<media;
Ti consiglio di sforzarti un pochino di piu' da solo prima di chiedere
aiuto....
Ok che la media intera e' somma/tot, ma se nel ciclo while fai diventare tot
0 (tot--) allora somma/tot diventa somma/0 !!!!!
Quindi non aspettarti davvero che funzioni.
Detto questo, quando avrai risolto... ho notato che media e' dichiarato come
float, ma nel modo in cui lo usi conterra' sempre la media intera!
float a = 5/2;
a contiene 2 non 2.5 !!!
5/2 fa 2 (visto che sono due interi) che poi viene messo in un float, ma...
oramai e' intero!
5/2.0 ad esempio fa 2.5 quindi:
float a = 5/2.0;
fa quello che vuoi.
Da qui puoi decidere di fare quello che vuoi, un cast, dichiarare somma coma
float etc....
Per finire il while in quel modo non e' proprio il massimo:
cosa serve il primo cin >> n ?!?
Tommy

 media= somma/tot;
Questa e' una divisione tra due valori interi, il cui risultato e' un
intero, non un numero frazionario.
Ciao,
Nicola

Newsgroup: it.comp.lang.c++
Titolo: eliminare puntatore da array

Ho dichiarato dinamicamente un array di puntatori a struttura, utilizzando 
l'operatore new. Posso tramite l'operatore delete eliminare un singolo 
puntatore dall'array? 

 wrote:

Tu hai:
foo* = new foo[sz];
e vorresti fare
delete foo+4?
Non puoi.
-- 
-riko


una cosa del genere e' possibile:
  int** i=new int*[15];
  ...
  delete i[1];
ma non credo che elimini l'elemento (l'iesimo puntatore),
penso liberi solo la memoria a cui il puntatore...ehm punta. :-)
Il mio consiglio spassionato  e' di usare std::vector.
Ciao!
C!
-- 
Programming today is a race between software engineers striving
to build bigger and better idiot-proof programs,
and the Universe trying to produce bigger and better idiots.
So far, the Universe is winning.
-- Richard Cook

 penso liberi solo la memoria a cui il puntatore...ehm punta. :-)
Il codice da te scritto e' valido solo se e' stato fatto da qualche
parte un i[1] = new int(...) oppure i[1] punta altrimenti ad un oggetto
siffatto.
Per esempio
int* s = new int(10);
i[1] = s;
Ah, anche se i[1] == 0 e' valido.
Se i[i] punta ad un intero non allocato con new (nota, in questo caso
new[] *non* va bene) sei in undefined behaviour.
-- 
-riko

 siffatto.
CUT
Si si corretta osservazione!  Avevo erroneamente sottinteso quello che
hai giustamente puntualizzato! :-)

Newsgroup: it.comp.lang.c++
Titolo: aiutatemi!!!

Ho creato una matrice dinamica in questo modo:
 double** matrix;
 matrix = new double* [righe];
 for (int i=0; i<righe; i++) {matrix[i] = new double[colonne];}
inizializzato gli elementi ...
 for (int q=0; q<righe; q++){
  for (int w=0; w<colonne; w++){
   matrix[q][w]= ... }}
ora se devo deallocare completamente la memoria che istruzioni devo
eseguire?
per sempio se faccio:
 for(int s=0; s<righe; s++) {delete[] matrix[s];}
 delete[] matrix;
sono sicuro che tutta la memoria venga deallocata o vi è un metodo migliore?

 sono sicuro che tutta la memoria venga deallocata o vi è un metodo migliore?
Perche' non dovrebbe deallocarsi tutta? per quel che ne so questo metodo
funziona e non credo ce ne sia uno migliore...
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

Newsgroup: it.comp.lang.c++
Titolo: Programmare in Windows

Mi trovo nella necessità di programmare in windows dopo aver programmato in
unix. Che libro mi consigliate?? Avrei un dubbio sui due libri seguenti:
Programmare Windows quinta edizione - Petzold Charles
I segreti della programmazione in Windows 98 - Claytos Walnum
GRAZIE



Newsgroup: it.comp.lang.c++
Titolo: domanda semplice:inizializzazione di un oggetto: come?

ho una classe che si inizializza gon dei parametri, ad esempio:
classeA a(par1,par2);
Ora ho un altra classe che ha classeA come variabile: come inizializzarla in
una funzione della classe?
Es. qualcosa del genere ...
ClasseB{
    private:
        ClasseA a;
         void f();
        ...
}
void ClasseB::f()
{
...
 a=new ClasseA(par1,par2);
...
}
Scritto cosě mi da errore!
Perchč?
Grazie in anticipo, Mario.

 Perchč?
L'operatore "new" rende sempre un puntatore, e stai cercando di 
assegnare tale puntatore all'oggetto "a", che non e' un puntatore!
-- 
     Carlo Milanesi
 
http://digilander.libero.it/carlmila

 ha scritto nel messaggio
news:JIJSc.40310$OH4.1...@twister1.libero.it...

Ti da errore perché a č un'istanza di ClasseA e non un puntatore.
Guarda questo esempio,
ciao.
#include <iostream>
using namespace std;
class complex
{
        double a , j ;
        public:
        complex(double Real,double J) : a(Real) , j(J) { }
        complex(const complex& S) : a(S.a) , j(S.j) { }
        friend ostream& operator<<(ostream& out,const complex& C)
        { return out << C.a << " + j" << C.j; }
};
class prova
{
        complex C,*cP;
        void init() { cP=new complex(C); }
        public:
        prova() : C(2.0,4.5)
        {
                init();
                cout << "C = " << C << endl << "cP= " << *cP << endl;
        }
        ~prova() { delete cP; }
};
int main()
{
        prova P;
        std::cin.get();
        return 0;
}
Newsgroup: it.comp.lang.c++
Titolo: che differenza....

che differenza c'è tra c e c++?
o meglio, quando mi accorgerò delle differenze?
grazie mille!

 o meglio, quando mi accorgerò delle differenze?
Più che "accorgerti" delle differenze, dovresti decidere quale linguaggio
studiare. I manuali C++ partono da zero e non presuppongono alcuna
conoscenza del C.
Max

 o meglio, quando mi accorgerň delle differenze?
Se non te ne sei accorto fin dalle prime pagine allora cambia libro.
EMG
--
EMAG Software Homepage:     
http://www.emagsoftware.it
The EMG's ZX-Spectrum Page: 
http://www.emagsoftware.it/spectrum
The Best of Spectrum Games: 
http://www.emagsoftware.it/tbosg
The EMG Music page:         
http://www.emagsoftware.it/emgmusic

Newsgroup: it.comp.lang.c++
Titolo: [OT] come funge bcc32 ???

Salve a tutti!
Scusate l'OT, ma spero che ci sia qualche animo gentile che mi possa 
aiutare...
Ho scaricato il borland c++ 5.5 (la versione gratuita a linea di 
comando, tanto per intenderci), e non capisco come compilare un listato.
Per prova ho scritto il solito "Hallo world":
#include <IOSTREAM>
void main () {
	cout << "CIAO!";
}
però quando vado per compilare con questa istruzione
bcc32 prova.cpp
mi risponde candidamente che non trova il file IOSTREAM, e di 
conseguenza sputa errori anche sul resto.
devo forse modificare un file col percorso delle librerie?
e la sintassi che uso per compilare è giusta?
Un grazie di cuore a chiunque vorrà rispondermi.

 Un grazie di cuore a chiunque vorrà rispondermi.
di nulla...
-- 
Gerolamo
www.overweb.it

      return 0
E' facoltativo, nel main.
-- 
Gerolamo
Newsgroup: it.comp.lang.c++
Titolo: Conversione numero complesso nella forma a+ib

Ho un piccolo problemino con la conversione di un numero complesso. In
pratica vorrei fare una funzione che mi prende una stringa con un numero
complesso, nella forma a+ib (3+i-5, -56+i4, ecc ecc) e mi estragga parte
intera e parte immaginaria.
Io avevo provato a farlo ma ho cancellato il codice di quello che avevo
scritto e cmq avevo messo troppi puntatori.
Volevo sapere solo una cosa l'strtok riconosce la sequenza "+i" oppure
riconosce solo un carattere come delimitatore di token?
e un'ultima cosa la funzione atoi che non mi converte in int un singolo
numero(per esempio '3', mentre mi converte tranquillamente '33') se prende
una stringa con all'interno '-3' me la converte direttamente in intero con
segno?
Grazie a tutti.

 intera e parte immaginaria.
Ti consiglio di non  usare la funzione strtok a meno che tu non sappia bene
cosa stai facendo.Inoltre tale funzione lavora su char * quindi stringhe
tipo C ed è meglio usarla in programmi C.Siccome programmi in C++ cerca di
usare oggetti string che cmq fanno parte del C++ standard.
Segue esempio di codice:
#include <iostream>
#include <string>
using namespace std;
int main(void)
{
        string str,re_s,im_s;
        int pos,re,im;
        cin>>str;
        if((pos=str.find("j"))!=string::npos)
        {
                re_s=str.substr(0,pos-1)+" "; //lo spazio successivo è per
la funzione atoi (la rende + coerente).
                im_s=str[pos-1]+str.substr(pos+1,str.length()-pos-1)+" ";
                re=atoi(re_s.data());
                im=atoi(im_s.data());
                cout<<"\nRe="<<re<<"\nIm="<<im<<"\n";
        }
        return 0;
}
In input non devi dare la forma a+j(-b) se la parte immaginaria è negativa
ma invece devi dare a-jb (è semanticamente + corretto).
Ciao.
Newsgroup: it.comp.lang.c++
Titolo: costruttore con WindowProcedure

vorrei usare una classe generale, che comprenda tutta l'applicazione
qualcosa tipo
class App{
public:
    App();      //<--RegisterWindowEx() e CreateWindowEx()
    void StartMessageLoop();
    HINSTANCE hInstance;
    HWND hwndMain;
    RECT rcMain;
    HDC hdcMain;
    ...
private:
    LRESULT CALLBACK App::MainWindowProcedure(HWND, UINT, WPARAM, LPARAM);
};
si puo'?
e' una buona idea? 

 e' una buona idea?
Posto che questo ng tratta di C++ standard e non di estensioni e librerie
extra:
non so se il codice che hai scritto e` corretto. La programmazione MS non
mi interessa. Tuttavia ammesso che le varie faccende in maiuscolo siano
tipi di dati, e` la dichiarazione di una classe come un'altra, che contine
degli oggetti. L'unica cosa che mi lascia un po' li e` l'ultima... perche`
specifiche che MainWindowProcedure e` App::...?
In pratica tu stai wrappando del codice in una classe C++. Questo e`
lecito. E` conveniente? Ci sono casi in cui puo` esserlo. In particolare
non conoscendo la progr tramite API di windows, non so dirti.
In assoluto puo` essere una buona idea. Classi per wrappare socket ne ho
viste tante, per dire.
Semmai un vantaggio potrebbe essere creare classi astratte 'Applicazione',
'Finestra' che poi specializzerai per Windows (e magari in futuro potrai
fare altre sottoclassi che invece usano GTK o QT o quello che vuoi per
poter portare in modo abbastanza indolore l'applicazione -- ma il lavoro lo
fai prima, non e` che non lo fai proprio -- )
-- 
[ RiK0                                ]
[ non credo negli schemi non vincenti ]
[ two is an odd prime number          ]

Newsgroup: it.comp.lang.c++
Titolo: Edit Box

Quale messaggio si usa per leggere ciň che č scritto in una EditBox?
ho provato con SendMessage(hwndeditbox,CB_GETLBTEXT, (WPARAM) 0,(LPARAM)
&nome)
ma credo che CB_GETLBTEXT non sia adatto ad una EditBox.

 ma credo che CB_GETLBTEXT non sia adatto ad una EditBox.
si usa it.comp.programmare.win32
ciao :)

Ciao,
Questo newsgroup si occupa del linguaggio C++ in quanto tale, e non di
aspetti specifici di particolari implementazioni. Per questo non e' il
posto piu' adatto per porre domande specifiche come la tua.
Potresti avere piu' fortuna su uno dei seguenti gruppi:
Per Win32 (95, 98, NT): it.comp.programmare.win32
Per Dos/Win 3.x: it.comp.os.dos
Per Linux:      it.comp.os.linux.development
Per C++Builder: i gruppi borland.public.cppbuilder.*, disponibili sul
                server 
newsgroups.borland.com
 (prevalentemente in 
                inglese, ma si puo' postare anche in italiano)
Grazie,
Nicola Musatti
Newsgroup: it.comp.lang.c++
Titolo: HELP!!! Dev C++

Ragazzi per favore aiutatemi non riesco ad utilizzare con questo compilatore
i comandi della libreria conio.
Ho provato in tutti i modi ma niente da fare.
Purtroppo sono costretto ad utilizzare il Dev C++ per motivi universitari e
quindi non posso usarne un altro.
Qualcuno sa come fare?
GRAZIE!

 ha scritto nel messaggio
news:9s6qoj$a1s$1...@nreada.inwind.it...


 if ( x<y, y<z )
Questo fa qualcosa di diverso da quello che ti aspetti.
Quello che intendevi scrivere č:
 if( x<y && y<z )     
Max

 guarda un pò questo programma per la ricerca del minimo:


[...]
Prova ad inserire 1, 1 e 2.
-- 
                    Marco Barisione (ICQ 84277092)
Se sei interessato alla creazione di it.comp.lang (per i linguaggi di
programmazione senza un gruppo apposito e per i confronti fra i
linguaggi) partecipa alla discussione sul manifesto su it.news.gruppi.


Io scriverei un bel:
    std::cout << "il minimo e'";
    std::cout << std::min(x, std::min(y,z)) << std::endl
Ciao
Gaetano.
-- 
Posted from 
nts-03.mm.eutelsat.org
 [194.214.173.15] 
via Mailgate.ORG Server - 
http://www.Mailgate.ORG
Newsgroup: it.comp.lang.c++
Titolo: C++ Builder, come svuotare il buffer della tastiera?

Vorrei risolvere sotto Win95 un problema che sotto DOS era banalissimo: come
eliminare/ignorare i tasti premuti durante l'attesa di un (lungo) calcolo.
Questo per evitare che alla fine del calcolo comincino ad attivarsi funzioni
legate alla pressione di tasti.
Ho ipotizzato 3 soluzioni ma non conosco le API o funzioni del Builder da
usare:
- svuotare brutalmente il buffer della tastiera (sotto DOS si faceva
tranquillamente)
- leggere tutti i caratteri fino alla fine (ma sotto Win95 sono sconsigliati
getch(), kbhit() ecc...)
- disabilitare alcuni tasti temporaneamente, quando la mia applicazione ha
il focus, fino alla fine del calcolo
Quello che ho trovato è l'API GetAsyncKeyState() che mi dice se in un certo
istante un tasto particolare è premuto, ma non mi è di grande aiuto...
--
Ciao, AntoGal
*************************************************
Home Page (area programmatori di VolFtp)
http://www.volftp.vol.it/IT/IT/ITALIANI/galletta
per scaricare un gioco di Dama Italiana.
*************************************************

...
secondo me sbagli completamente l'approccio al problema. Hai mai visto
un programma di windows che disabilita la tastiera ? Magari bloccando
completamente windows ? Lo useresti un programma cosi' ?
Un programma windows non dovrebbe disabilitare la tastiera (e il mouse
poi dove lo metti ?) ma dovrebbe disabilitare le proprie finestre in
modo che non accettino alcun input. Un programma che  si comporti bene
durante un'operazione lunga  dovrebbe anche fornire all'utente un
feedback per fargli capire che sta lavorando e magari dargli la
possibilita' di interrompere l'operazione. Di solito questo si fa con
una "progress dialog" che contiene una progress bar e un pulsante di
"annulla", se prima di visualizzare questa finestra disabiliti la
finestra principale del tuo programma ottieni il duplice risultato di
impedire "azioni" inopportune da parte dell'utente e di dare un
feedback visivo sul progredire dell'operazione. Ovviamente perche' il
tutto funzioni correttamente durante l'operazione lunga il tuo codice
deve continuare a processare i messaggi di windows altrimenti non
vengono neppure aggiornate le finestre e il tuo programma appare nel
task manager come "Not responding".
Gianpaolo Bottin
- Live Long and Prosper -

deve continuare a processare i messaggi di windows altrimenti non
infatti, con Application->ProcessMessages(); nel mio caso.

Newsgroup: it.comp.lang.c++
Titolo: VIRUS INTERNET

 conoscete la e-mail sarà possibile fermare il virus. Saluti.

> NON APRITELO !!!!!!!!!!!!!!!!!!!!!!!!!!!
Una sola risposta:
http://www.symantec.com/avcenter/hoax.html
--
Un Ciao in DO maggiore!           ICQ: 20078912
-=) Sbaturzio Cantina (=-         remove NOSPAM to reply by e-mail.

ATTENZIONE!!!!!!!!!
SE VEDETE SU UN NEWSGROUP UN MESSAGGIO CHE HA COME TITOLO "VIRUS INTERNET"
NON FATECI CASO!!!!!!!!!!!!!!!!!!!!!!!!!!!
Passate questa informazione a quante più persone conoscete. Si tratta di un
vecchio scherzo che molti già conoscono. Questa informazione è stata data
dalla Microsoft Lunedì 19.10.98 mattina, Vi preghiamo quindi di passarla a
chiunque possa avere accesso ad Internet. Passando questa informazione a
tutti coloro di cui conoscete la e-mail sarà possibile rinchiudere chi
ancora ci casca. Saluti.

Newsgroup: it.comp.lang.c++
Titolo: [OT] it.scienza.informatica

magari č inutile dirlo ma ho notato che
it.scienza.informatica
č un newsgroup dove io mi sarei aspettato
almeno la metą dei frequentatori dei ngs relativi
a ogni linguaggio (vogliamo fare una stima???)
E invece mi accorgo che č mooooolto poco popolato...
Vorrei ricordare che l'informatica č una scienza...
Informatica="Informazione Automatica"
e non semplicemente *il* java... *il* C e altro...
Mi aspetterei di incontrare tante persone che cercano di
risolvere problemi interessanti che riguardano algoritmi
particolari...o altro. E' ovvio che qui si parla di C... ma
cosa si puņ fare con un linguaggio di programmazione?
programma=algoritmo+strutturadati come dice il buon
vecchio Wirth.
Dai venite numerosi...altrimenti mi spingete a credere che tutti
quelli che frequentano questo ng abbiano solo problemi
tecnici e mai ANCHE teorici.
Ciao e buon lavoro a tutti!

 tecnici e mai ANCHE teorici.
Qui, spesso, si parla anche di teoria/algoritmi... Se seguissi meglio 
questo NG... ;)
-- 
Luc.

 Luc.
Dan.

 allora non credo sia il posto giusto per farlo!
rotfl.
non credevo esistesse ancora qualcuno cosě cretino da non capire che tra
il mondo dell'astrazione e quello dell'istanziazione ci sia un buon 90% di
debugging, risolto il 10% di creativita'.
dio ci preservi e liberi dai segaioli mentali convinti che basta copiare
un flow chart da un libro della jackson per sapere programmare in un
linguaggio.
--
c.
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

 c.
allora credo di essermi spiegato male.
Anzi malissimo.
Non intendevo affato intendere ciň che hai pensato tu, piuttosto intendevo
dire
che spesso č interessante generalizzare problemi per renderli poi
applicabili ad altri
problemi. Io ho spesso questa tendenza (forse dovuta a l'abitudine OO)
e mi piace creare soluzioni polimorfiche...quest'ultime credo abbiano come
luogo
piů adatto it.scienza.informatica... poi eventuali problemi implementativi č
giusto
che siano rimandati in it.comp.$(linguaggio)
ciao e buon lavoro
Newsgroup: it.comp.lang.c++
Titolo: Gestione input tastiera....

Salve a tutti
sono un novizio del c e volevo chiedervi una cosa....:)
Sto facendo un giochino ( grafica BGI ), pong, una specie di "tennis" 
dove ci sono due barre mobili ai lati dello schermo e una pallina che 
rimbalza, dove prendo in input da tastiera la direzione di movimento di 
ogni barra. per farlo catturo l'evento della pressione da tastiera con 
kbhit, poi con un
tasto=getch();
distinguo il tasto schiacciato. Il problema è che non riesco a fare in 
modo che possano muoversi contemporaneamente le due barre; ( esempio 
quando un utente preme un pulsante per muoversi, e l'altro poco dopo fa 
lo stesso, sarà solo il secondo giocatore a muoversi, e il primo si ferma )
Spero che possiate aiutarmi....;))
ciao e grazie.

 sono un novizio del c
Allora sei OT! ;)
-- 
Luc.
Newsgroup: it.comp.lang.c++
Titolo: serializzazione

Sapete dirmi se c'č un modo automatico di serializzare oggetti o strutture
complesse? Tipo java intendo. Ad esempio per ora in c++ io metto gli oggetti
sui file campo per campo.
    Grazie

     Grazie
Se vuoi unbell'articolo prova questo
http://www.cuj.com/articles/2001/0110/0110a/0110a.htm?topic=articles
Se vuoi un libreria prova questa
http://xparam.sourceforge.net/index.html
Ciao
Cesare

 > Sapete dirmi se c'č un modo automatico di serializzare oggetti o


 "appiattire" gli oggetti in uno stream?
No.
Ciao,
Nicola

Chiaro e conciso.
    Grazie mille
Luca
"Nicola Musatti" <Nicola....@ObjectWay.it> ha scritto nel messaggio
news:3D188CCF...@ObjectWay.it...


 > > "appiattire" gli oggetti in uno stream?
Al massimo, con sintassi che non so esattamente, ti ridefinisci per ogni
oggetto un operatore<< su ostream per serializzarlo e un >> su istream per
recuperarlo(se non sbaglio entrambi di solito sono friend della classe) che
si vanno a scrivere campo per campo l'oggetto. (Č questa la soluzione
standard).
VC++ sfrutta un approccio simile, infatti, solo che si usa una unica
funzione membro Serialize che opera su un CFile e verifica se il CFile č in
lettura o scrittura per decidere se leggere o scrivere l'oggetto( con alcune
cose in piů che permettono di leggere un CObject e capire a Run-Time di che
si tratta) per informazioni specifiche, chiedi a qualcun altro, e forse su
un newsgroup specifico di VC++ o MFC. Ciao!
Ciao!

Newsgroup: it.comp.lang.c++
Titolo: Sintesi vocale italiana...

Credo sia OT... ma nessuno sa dove posso trovare un programma come da
oggetto?

 wrote in message
7aeufv$fk8$1...@nslave1.tin.it...



Ma monologue non è in inglese? Io cerco qualcosa in italiano... (ho già
prody parrot... con la live, ma è in inglese!)

 wrote in message
7af0go$eur$1...@nslave1.tin.it...

Newsgroup: it.comp.lang.c++
Titolo: Che cosè? #define Byte *(unsigned char*)&

Scusate, questo cosï¿œ:
#define Byte *(unsigned char*)&
Grazie

 #define Byte *(unsigned char*)&
� un'istruzione del precompilatore, che dice -sostanzialmente- di sostituire
tutte le occorrenze di "Byte" con "*(unsigned char*)&".
Max

 tutte le occorrenze di "Byte" con "*(unsigned char*)&".
OK, fin qui ci sono ma � il pezzo dopo che non capisco.
� un puntatore ad un char ...poi vedo una funzione che restituisce un 
puntatore...

 puntatore...
Nope, niente funzione, e' un cast.
Leggilo da destra a sinistra:
& = prendi l'indirizzo della variabile (otterrai il puntatore)
(unsigned char*) = cast di quel puntatore a uchar
* = dereferenzia
Ad es.:
int pippo;
*(unsigned char*)&pippo;
prende l'indirizzo della variabile pippo, trasforma il puntatore a
unsigned char, e dereferenzia: in questo modo ottieni il primo byte
della variabile pippo, che di per se' sarebbe di 4 byte (quasi
sempre... ma lo standard non garantisce nulla, non contarci su quel
4).
Che cosa sia davvero quel "primo" byte dipende dalla rappresentazione
interna (big o little endian), visto che "pippo" e' un int: sara' o il
piu' o il meno significativo.
Pleg

 #define Byte *(unsigned char*)&
Giï¿œ ti risposero.
Perï¿œ una cosa cosï¿œ "non s'ha da fare"... tanto per cominciare non ï¿œ
portabile, perchï¿œ dipende dall'endianness del processore. Poi si raggira
il sistema di controllo dei tipi e anche questo non ï¿œ bene.
Se proprio ti serve il primo byte, definisci una union oppure shifta e
poi XORa con una bitmask...

 poi XORa con una bitmask...
Lo shift pero' funziona solo con gli interi. Se volessi leggere i
singoli byte di un numero floating point, dovrei per forza castare il
puntatore.
Pleg

 Pleg
WOW! Grazie mille!
Credo che la portabilit� non interessi: � un pezzo di codice per un 
microcontrollore, "v� bene solo per lui"-
Grazie ancora.

 Grazie ancora.
De nada.
Ma controlla la endianness: fai qualche prova, scrivi dei valori e
vedi cosa ti restituisce quella macro... insomma, giocaci un po'.
Altrimenti potresti trovarti degli errori incomprensibili in seguito,
molto difficili da tracciare (tipo pensi di star prendendo il primo
byte e invece prendi il secondo).
Pleg

 all'università.
In un certo senso e' lo stesso: comunque devi castare puntatori /
passare a void* e ti perdi il type checking, come metteva in guardia
Massimo.
Pleg
Newsgroup: it.comp.lang.c++
Titolo: NewBie : file e gestione degli stessi

Salve, saro pragmatico.
	cosa devo fare:
	un parte di programma che da un tree scarichi
le informazioni di svariate struct su file.
(ovvio, e' per un esame...non vi chiedo codice, ma spiegazioni :)  )
problema:
la gestione del file non mi e' del tutto chiara.
1) cosa usa il compilatore per scrivere sul file?
un buffer del tipo FILE come in c? o qualcosa di silmile?
o qualcosa d'altro?
2) quando apro uno stream sul file cavolimiei.xtx 
il suddetto canale che scope ha?nel senso (se non 
ho usato i termini adatti) devo considerarlo come
una "variabile"?
oppure posso scrivere in qualsiasi funzione?
spero di essermi spiegato e di non aver fatto domande stupide
carlo toniolo
47...@unitn.science.unitn.it

 oppure posso scrivere in qualsiasi funzione?
In C++ e' pienamente supportata la libreria C. Quindi se conosci l'uso dei file
in C puoi anche usare quelli. In pratica usi una variabile del tipo "FILE *" che
inizializzi con "fopen", passi ad ogni "fwrite" e chiudi con "fclose".
In C++ puoi anche usare gli stream. In particolare fstream o ofstream. Sono
classi. Dichiari una variabile. Puoi aprire il file direttamente nel costruttore
oppure con il metodo open. Il file viene chiuso con il metodo close o dal
distruttore. Essendo anche esse variabili le puoi usare solo nello scope in cui
le dichiari (sempre che non passi un reference o un puntatore ad esse ad una
funzione o ad un metodo, nel qual caso ovviamente le puoi usare anche li).
Da questo punto di vista e' la stessa cosa che fai con una qualunque variabile.
Gli ostream (incluso ofstream) possono scrivere sul file sia tramite i metodi
della classe sia tramite l'overload dell'operatore <<.
Spiegarti tutta la gerarchia degli stream e tutti i dettagli del loro uso non e'
banale. Ti consiglio di provare a leggerti il tuo reference (qualunque esso sia,
qualche cosa te la deve pur dire).
--
Andrea Ferro
---------
Brainbench C++ Master. Scored higher than 97% of previous takers
Scores: Overall 4.46, Conceptual 5.0, Problem-Solving 5.0
More info 
http://www.brainbench.com/transcript.jsp?pid=2522556
Newsgroup: it.comp.lang.c++
Titolo: Differenza di prezzo

Salve,
ho visto in un sito il 2 seguenti libri:
C++ PROGRAMMING LANGUAGE SPEC.EDIT.2000    Lire 178.000
C++ LINGUAGGIO LIBRERIA PRINCIPI PROGR.     Lire 89.000
L'autore è B.S.
Ma per caso il secondo è la traduzione del primo?
Se si, tutta questa differenza nel prezzo? Spero che non sia perché ci 
siano meno argomenti!
 
Grazie
-- 
Luigi
--
bug windows [5] = {"95", "98", "NT", "Me", "2000"};

 siano meno argomenti!
Il secondo *e'* la traduzione del primo, dalla quale potrebbero mancare
alcune appendici, che sono state inserite proprio in occasione
dell'uscita della "Special Edition" in inglese. L'altra differenza
sostanziale, che spiega almeno in parte la differenza di prezzo, e' che
la Special Edition e' rilegata. Gia' da alcune ristampe il contenuto
delle edizioni inglesi (rilegata e paperback) e' identico: non so con
quale ristampa sia allineata l'edizione italiana.
Ciao,
Nicola

quale ristampa sia allineata l'edizione italiana.
nella copia che ho io non sono presenti le parti aggiuntive della
special edition, quindi presumo che anche le altre in giro non le
abbiano; però, se non sbaglio, è possibile scaricarle dal sito di
B.S., no?
Anto
--
Antonio Cuni, 19 anni, studente
Brainbench C++ Master: 4.6, higher than 98% of all previous test takers.
C Language: 3.32, higher than 79% of all previous test takers.
Guida C/C++ di Programmazione.it: 
http://cpp.programmazione.it

 B.S., no?
Stroustrup ha scritto qualche tempo fa su comp.lang.c++.moderated che a
partire da non so quale ristampa il contenuto dei due libri e' identico.
Ciao,
Nicola
Newsgroup: it.comp.lang.c++
Titolo: LE CLASSI

sono un neofita e da poco ho iniziato a imparare le classi ma mi chiedo che senso ha una classe quando è tutto più rapido e veloce con le funzioni. 
grazie
credici
cre...@infinito.it
----------------------------------------------
Virgilio Mail - Il tuo indirizzo E-mail gratis
http://mail.virgilio.it
--
Posted from [212.48.4.46] 
via Mailgate.ORG Server - 
http://www.Mailgate.ORG

A domanda breve e concisa risposta breve e concisa:
non tutto e' piu' rapido e veloce con le funzioni.
piccolo commento: se pensi che tutto sia piu' rapido e veloce con
le funzioni, vuol dire che non dovresti usare le classi per il codice
che scrivi... Ma questo non vuol dire che le classi non abbiano senso: 
vuol solo dire che scrivi codice che non ha bisogno delle possibilita' 
che ti sono offerte dalle classi.
esempio di possibilita' offerta dalle classi: gestione automatica di 
piu' oggetti con funzionalita' simili ma che possono essere in stati
diversi, come, per esempio, i nodi in un albero. Se non usi le classi,
devi programmarti da solo la costruzione-distruzione.


 le funzioni.
Una classe rende molto più semplice la gestione dello stato di ogni
istanza (dati membro), la sua corretta inizializzazione (costruttore),
l'eventuale distruzione (distruttore) ed inoltre evita l'affollamento
dello spazio globale dei nomi grazie alla visibilità degli stessi a
livello di classe (funzioni membro). Queste le cose più banali ma ce ne
sono molte altre più avanzate. Inoltre non è affatto vero che con le
funzioni sia "tutto più rapido e veloce". Ci sono molti tipi di problemi
che diventano più facilmente gestibili se affrontati attraverso una
gerarchia di classi (un esempio: le interfacce grafiche tipo Windows).
EMG

 sono un neofita e da poco ho iniziato a imparare le classi ma mi chiedo che senso ha una classe quando è tutto più rapido e veloce con le funzioni. 
Le classi sono una delle entita' fondamentali del C++, che servono a
definire l'astrazione di un UDT (User Defined Type) ed i metodi che
possono operare sulle variabili che individuano lo stato delle istanze
dell'astrazione; e rendono inoltre possibile l'incapsulamento e
l'ereditarieta' tra classi.
Se tu non hai bisogno di astrazione, incapsulamento ed ereditarieta'
probabilmente non hai bisogno del C++.
Ad esempio, se devi stampare le radici quadrate dei numeri da 1 a 100
e' una perdita di tempo definire una classe "tabella" caratterizzata
da un costruttore cui fornirai limite minimo e massimo dei numeri che
ti interessano ed un metodo "print" per la stampa.  Usa il basic e la
programmazione procedurale...
Se devi fare qualcosa di piu' complicato, beh, qualcosa di utile nelle
classi lo si puo' trovare (con un minimo di sforzo ;-)
-- 
Maurizio Loreti                         
http://www.pd.infn.it/~loreti/mlo.html
Univ. of Padova, Dept. of Physics - Padova, Italy            
lor...@pd.infn.it
Newsgroup: it.comp.lang.c++
Titolo: software ausiliario

Mi scuso in anticipo per la domanda da principiante, ma
mi e' stato detto che esistono dei software ai quali e'
possibile 'dare in pasto' un codice sorgente per ottenere
in uscita un tabulato con l'elenco delle variabili,
quello delle funzioni, le eventuali chiamate reciproche
di queste ultime. Addirittura il diagramma di flusso in forma
proprio grafica. Non avendo altri riferimenti, Google non
mi e' stato molto d'aiuto; potreste fornirmi qualche indicazione
in merito ? Vi ringrazio. Ciao a tutti.
Isabella

NoOne ha scritto:

prova doxygen, e' abbastanza facile da usare e open source:
va bene per documentare il codice in modo automatico ma permette anche
di ottenere molto di quello che ti potrebbe servire.
In abbinamento a Graphviz disegna anche dei grafi.... magari ti basta.
Poi ci sono molti software per l' *analisi statica del codice*, molto 
sofisticati,
googla e trova qualche demo scaricabile....
brix

Grazie !!
Newsgroup: it.comp.lang.c++
Titolo: lista: inserimento in coda

Salve,
la questione sarà anche stupdida ma non ne vengo a capo:
Il codice è (inserimento in una lista semplicemente linkata) il seguente:
void Lista::Inserisci(TElem elem){
 
        if(!first){//se la lista è vuota inserisce in testa
            first = new Elemento;
            first -> el = elem;
            first -> succ =0;
            nelem++;                              
 
        }              
 
 
        else{  //altrimenti inserisco in coda
 
        // creo in memoria il nuovo elemento
        PElem p = new Elemento;
        p-> el = elem;
        p->succ = 0;
 
 
        PElem temp = first;
        while (temp->succ != 0){
        temp = temp->succ; //scorro la lista finchè non trovo la fine 
        }
 
 
        // ... e lo collego in coda alla lista
        p = temp ->succ;
        temp->succ = p->succ;
        nelem++;
        }
}
Non ci sono errori di compilazione, è l'inserimento in coda che non funziona.
Spero che l'interpretazione sia facile ... 
Perchè l'inserimento in coda non funziona ?
Grazie a tutti quelli che mi aiuteranno :-)

 Spero che l'interpretazione sia facile ... 
La prossima volta, metti anche cmq la dichiarazione dei tipi che usi... 
saranno state 5 righe in croce tanto...
-- 
Mat/tia Belletti - Undergraduate student @ 
cs.unibo.it
ICQ: 33292311    - email: 
mbel...@cs.unibo.it
IRC: RedGlow     - site(s): 
http://mbellett.web.cs.unibo.it/
Jabber: RedGlow  - Linux registered user 299762 @ machine 213003

 Grazie a tutti quelli che mi aiuteranno :-)
 
E' un piacere, fammi sapere se ti è servito e se ci sono altri problemi.
Buon lavoro,
fabiomdf
 
--------------------------------
Inviato via 
http://arianna.libero.it/usenet/

Ho risolto già la mia domanda precedente... ora ne avrei un'altra, per
la verità: voglio eliminare un elemento a scelta dell'utente dalla
lista.
Il seguente metodo mi elimina sì l'elemento scelto ma quando ristampo
a video la lista,questa non decresce.. e al posto dell'elemento
eliminato visualizzo a video un valore qualunque (0 o altri valori in
memoria a quell'indirizzo).
ESEMPIO: 1 2 3 4
istruzione: elimina 3 
ESECUZIONE: 1 2 0 4 
?? Grazie a tutti voi, il codice è:  
void Lista::Elimina(TElem elem){
 
     if(nelem){ //se la lista è vuota non faccio nulla
 
                PElem temp = first;
                while((temp->succ->el != elem)&&(temp->succ!=0)){
                 temp = temp -> succ;
                }
                if(temp->succ->el== elem){ //.. allora vuol dire che
temp punta
                PElem tbd = temp->succ; // tbd = to be deleted
                temp = temp->succ;
                delete tbd;
                nelem--;
                }
     }
}

                 nelem--;


...

GRAZIE, è vero, potevo pensarci un po' di più. E' che programmo da
pochissimo. Cmq sì, è un esercizio di programmazione.. altrimenti non
ci penserei due volte a usare la STL !
Newsgroup: it.comp.lang.c++
Titolo: Borland 5 & OpenGL

Scusate l'ignoranza ma non riesco a linkare i file con le librerie GLUT: se
dopo aver compilato un file c provo a fare il make ottengo una marea di
errori dovuti alle chiamate a funzioni GLUT; ovviamente le librerie GLUT
sono al loro posto ma questo sembra non basti.
Mi hanno detto che h un problema del formato della libreria (Microsoft) non
compatibile. Come posso convertire i file .lib per il mio compilatore
Borland? Esiste qualche utility che lo fa?
Grazie,
    Enrico.


Non so se esiste un utility di di questo tipo, puoi pero` generarti
da solo la import library (.lib) per il tuo BC++5, usando
le utilities a riga di comando impdef.exe e implib.exe che trovi
nella subdir bin, dandogli in pasto la dll.
Non chiedermi la sintassi esatta perche` la conosco solo
per il gcc e dlltool :). L'help in linea ti dovrebbe essere
d'aiuto.
-- 
Roberto Gerola
Email: 
robert...@penguinpowered.com
WWW: 
http://www.penguinpowered.com/~The_Cpp_Compass

 wrote:
Col compilatore viene sicuramente fornita una utility per ottenere i lib dalle dll
(anche se non ricordo come si chiama),
comunque se utilizzi le opengl che trovi su 
www.opengl.com
, i file lib li
trovi sia per i compilatori MS che per il Borland.
Paolo
-----------------------------------------------------------------
  Paolo Marotta
  Computer Science, University of Pisa
  home:   
http://www.cli.di.unipi.it/~marotta
  Rigorosamente non certificato M$... Una garanzia di qualita`!
-----------------------------------------------------------------
Newsgroup: it.comp.lang.c++
Titolo: Enciclopedia dei formati grafici, Jackson

Qualcuno ha acquistato il libro in oggetto ???
Prima di sprecare soldi vorrei sapere se contiene sorgenti C
ed info sui formati: AVI, MPEG-1, MPEG-2, PPM e YUV
(tutte le varianti) 
Ciao alla proxima...
BRUNO (
voy...@zuzzurello.com
)
SCAMBIO PROGETTI ELETTRONICI & SORGENTI C++BUILDER
http://www.floating.com/users/voyager/1.htm


Newsgroup: it.comp.lang.c++
Titolo: Info Thinking in C++ di Bruce Eckel

Ciao ho visto che esiste una versione cartacea in italiano di Thinking  in
Java (Apogeo), ma di Thinking in C++ non esiste nessuna pubblicazione in
italiano?
Grazie e ciao
Max

 ha scritto nel messaggio
news:WfkV9.9177$YG2.2...@twister1.libero.it...

No. Non esiste alcuna edizione italiana del suddetto libro. Mi dispiace.
Saluti.

 ha scritto nel messaggio
news:NlkV9.9215$ZE.2...@twister2.libero.it...

Esiste on-line un progetto di traduzione del primo volume, diversi capitoli sono gia` disponibili da
scaricare:
http://www.umbertosorbo.it/modules.php?op=modload&name=Downloads&d_op=viewdownload&cid=2
Ciao,
Cecco


http://www.umbertosorbo.it/modules.php?op=modload&name=Downloads&d_op=viewdo
wnload&cid=2
Questo progetto si è arenato da almeno 2 anni....

Newsgroup: it.comp.lang.c++
Titolo: dll con risorse

Salve, potenzialmente OT... dev c++ compila un file .exe correttamente
con le risorse di un file allegato .rc, nel momento in cui compilo un
file dll, le dialog non funzionano, penso che dev cpp non carichi le
risorse...

 ha scritto nel messaggio
news:19afd0ff.04050...@posting.google.com...

C'è un ottimo NG dedicato al c++ (it.comp.lang.c++) li ti saprano
consigliare al meglio,ciao ;-)

 consigliare al meglio,ciao ;-)
A parte che questo E' it.comp.lang.c++, vorrei sottolineare il fatto
che prima di consigliare di chiedere in un determinato NG, sarebbe
il caso di controllarne il manifesto.
Il gruppo giusto per quella domanda č:
it.comp.programmare.win32
-- 
Gerolamo

 consigliare al meglio,ciao ;-)
pensavo di trovarmi in "it.comp.lang.c++" ...

...

No, perche' qui ci occupiamo di C++ standard, mentre la sua domanda
riguarda Windows. Il newsgroup giusto e' it.comp.programmare.win32
Ciao,
Nicola


avete ragione ragazzi,scusate mi sono sbagliato :p

Newsgroup: it.comp.lang.c++
Titolo: Finestre di dialogo particolari

Qualcuno sa come è possibile (senza impazzire) costruire in C++Builder una
form tipo Info di un programma che
possegga un'immagine debordante in qualche punto dal rettangolo della form
stessa.
Tipo la gru della finestra di attesa all'avvio del Jbuilder 2.
Similmente magari come introdurre dei 'buchi' nella form che lasci
intravvedere lo sfondo del resto di Windows.
Grazie
Mauro

Devi informarti sulle "Regions" che trovi nel Win32 SDK.
Inferno
Newsgroup: it.comp.lang.c++
Titolo: Gestione modulo continuo in c++

Mi sono avvicinato da poco a c++,
devo stampare su modulo continuo dei blocchi di dati.
E' possibile in c++ dire alla stampante di spostarsi di xx mm in
altezza?
Ho provato stampando x righe ma si muovo in sesti di pollice, posso
farla muovere in mm?
int spazio (int var)
 {
    int a;
    ofstream print;
    print.open("lpt1:", ios:: out);
    for(a = 0; a < var; a++)
    {
       print << endl;
    } 
    print.close(); 
    return 1; 
 } 
GRAZIE

 altezza?
(sei OT e qualcuno te lo dira' ben presto)
_forse_ e' possibile in c++ come in qualsiasi altro linguaggio.
leggiti per benino il manuale hardware della stampante in cerca di
qualche sequenza di escape rilevante, o simili menate...
-- 
  Maurizio Loreti    
ROT13:ybe...@cq.vasa.vg
    |  (@_
Un. of Padova, Dept. of Physics, Padova, Italy  |  //\
 
http://www.pd.infn.it/~loreti/mlo.html
      |  V_/_


La stampante è molto vecchia e non ho manuale!


 La stampante è molto vecchia e non ho manuale!
E ti aspetti che un linguaggio di programmazione preveda meccanismi per
il pilotaggio di specifiche stampanti ?!?
Ciao,
Nicola

 Nicola

 deve usare la stampante.
In ogni caso sono aspetti specifici del sistema su cui operi e devi
spostarti su un newsgroup specifico (immagino sia
it.comp.programmare.win32)
Ciao,
Nicola

Newsgroup: it.comp.lang.c++
Titolo: Li posso fare i giochi con questo compilatore?

Ciao, io ho il compilatore Microsoft Visual C++ 6.0 - vorrei sapere se li
posso fare i giochi con questo compilatore. Mi hanno detto che per esempio
su piattaforme come dos,  questo compilatore non può far giochi. Ma almeno i
giochi per windows li può creare? Quando apro il visual, quale nuovo
progetto devo aprire? Console Application - MFC - ed altri
Ditemi quale progetto devo cominciare per svolgere un gioco.
Ringrazio anticipamente. Ciao


????????

 giochi per windows li puņ creare? Quando apro il visual, quale nuovo


Newsgroup: it.comp.lang.c++
Titolo: file txt

Dovrei confrontare due file, ed ottenerne un terzo composto dalle righe che
il secondo ha in più del primo .
Qualcuno conosce qualche comando DOS che lo fa gia ,
oppure siete in possesso di un eseguibile che possa fare al caso mio?
Grazie a tutti
Fede


"Vi or emacs? .....OpenOffice! =)"
 

 diff ... ehehhe ^_^
Naaah, uniq!
Ciao,
Nicola
P.S. Per l'OP: questa domanda e' fuori tema in questo newsgroup.
Comunque puoi dare un occhio a cygwin
(
http://sources.redhat.com/cygwin/
), che insieme a miriadi di altre cose
contiene anche quello che ti serve, oppure scriverti un programma.

>contiene anche quello che ti serve, oppure scriverti un programma.
Oppure potresti semplicemente cercare i sorgenti di 'diff' in rete, 
perlappunto, giacchè mi risulta che siano Open Source.
P.
-- 
_____
http://theunixplace.com/~entropia/index.html_____
 
  Mutationem motus proportionalem esse vi impressae 
et fieri secundum lineam rectam qua vis illa imprimitur
	I. N.

 ha scritto nel messaggio
news:slrna4ta...@localhost.localdomain...

Newsgroup: it.comp.lang.c++
Titolo: errori di compilazione che mi da vbasic

provando a ricompilare un progetto fatto con g++ con il vbasic ho
alcuni errori che non riesco a capire, per farlo funzionare ho messo
using namespace std,
il primo e':
onditional expression of type 'class std::basic_fstream<char,struct
std::char_traits<char> >' is illegal
e me lo segna in questa porzione di codice
cin>>nome_file; 
     leggi_fcpp.open(nome_file.c_str(),ios::in);
     if(leggi_fcpp)
       {//...
per l altro O_o provando a ricompilare e' scomparso... non aveva
infatti senso un errore di multiple declaration in questa funzione...
non riesco a capire come mai me lo aveva dato...
void prepara_next_move(int N[][33], key_word K[][33])
{
  for(int j=0; j<20;j++)
    for(int i=0; i<33; i++)
      {
	N[j][i]=0;
	K[j][i]=niente;
      }
  for(int j=0; j<20;j++)
    for(int i=26;i<=27;i++)
      N[j][i]=1;
    for(int j=0; j<20;j++)
    for(int i=29;i<=30;i++)
      N[j][i]=1;
  //..
  //..    
  return;
}
boh :D thx per le risposte ^_

 
Intendi VC++ vero? Altrimenti, che c'entra il VB con il C++???

...

si intendevo vc++ ... ma la fretta mi ha giocato un brutto scherzo :)

Newsgroup: it.comp.lang.c++
Titolo: Salvare una struttura o una classe

Ciao a tutti,
ho il seguente problema:
Ho creato una classe o una struttura, non ha importanza, succede con
tutti e due, che contiene un nome ed una età. Appena la salvo in un file
con la funzione “salva”, tutto ok, il nome ed età vengono salvati senza
problemi. Ma appena tento di aprirlo e leggerne il dati con la funzione
“carica”, mi spunta a video solo l’età. Dove cavolo è andato a finire il
nome ?
Inoltre ho notato che se nel codice ci sono tutte e due le funzioni
“salva” e “carica”, mi spunta tutto,
ma appena cancello la funzione “Salva”(dopo aver compilato e creato il
file naturalmente . . .)
e compilo il codice con la sola “carica”, succede quello che ho sopra
descritto.
Qualcuno può aiutarmi ?
Grazie.
HS_
Qua c’e il codice:
//////////////////////////////////////////////////////////////////
class prova
{
public:
	int eta;
	char *name;
};
int salva(char *filename, int eta, char *name)
{
	prova *p=new prova;
	p->eta=eta;
	p->name=name;
	FILE *file;
	file=fopen(filename,"w");
	fwrite(&p,sizeof(prova),1,file);
	fclose(file);
	return TRUE;
}
int carica(char *filename)
{
	FILE *f;
	prova *p1=new prova;
	f=fopen(filename,"rb");
	fread(p1,sizeof(prova),1,f);
	cout<<p1->name<<endl;
	cout<<p1->eta<<endl;
	fclose(f);
	getch();
	delete[] p1;
	return 0;
}
int main()
{
    salva("mario.txt",34,"mario");
    carica("mario.txt");
    getch();	
   return 0;
}
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

 }
Mi pare che tui stai salvando la struttura in modalita' bitwise quindi un
intero e un puntatore di caratteri (non quello a cui si referenzia il
puntatore)
Lo stesso ragionamento e' da applicare alla lettura.
Hai provato a visualizzare il contenuto del file salvato e vedere se trovi
il campo 'nome' ?
Fabio