mii-community/UsenetArchiveIT-conversations huggingface dataset:
Newsgroup: it.comp.lang.c++
Titolo: invio alla CEdit in un CDialog

> 
http://www.geocities.com/sunsetstrip/stage/7787
 <<
<<<<<<<<<<<< _
Metal...@iol.it
 >>>>>>>>>>>>>>
(remove asterisk to reply)

il cursore quando il focus è sul CTerminal?
Come ti ho accennato, le soluzioni sono tante, ma
mi sembra che la migliore per le esigenze che tu
probabilmente hai sia la seguente:
-- accertati che il tuo edit control abbia lo stile
    multilinea e want-return, e questo e` risolto;
-- per l'ESC, prova questo:
BOOL CBohDlg::PreTranslateMessage(MSG* pMsg)
{
    if(pMsg->message==WM_KEYDOWN &&
        pMsg->wParam==VK_ESCAPE &&
        pMsg->hwnd==m_edit.GetSafeHwnd())
            return 1;
    else
        return CDialog::PreTranslateMessage(pMsg);
}
Questo e` un "filtro" molto specifico -- blocca solo,
precisamente, la pressione del tasto di Esc, e solo
quando e` diretta al tuo controllo di edit (tutti gli altri
modi di terminare l'applicazione restano validi, sia
i click espliciti su bottoni appositi, sia il tasto Esc
quando il focus e` su altri controlli).  Penso che non
avrai problemi, con eventuali modifiche, ad usarla
per i tuoi scopi, comunque facci sapere!
Alex


grazie, alla fine ho scoperto che mi stavo complicando la vita per una
cazzata.
La chiave di tutti i miei problemi era che non avevo dato lo stile
ES_WANTRETURN alla mia CEdit.
Ora funziona tutto come volevo.
Il problema dell'ESC l'ho risolto scrivendo una OnCancel() che non fŕ
niente.
Per sistemare la pressione del tasto "invio" ho fatto cosě:
Con lo stile ES_WANTRETURN nel caso il focus sia sul CEdit, la pressione di
invio fa andare a capo il caret, e questo č OK.
Poi ho definito uno dei pulsanti del mio dialogo come pulsante di default
che viene invocato quando il focus č sugli altri controlli e si preme invio
(OK anche qui).
In questo modo il mio dialogo/applicazione termina solo quando si clikka sul
pulsante "Exit".
Alex, grazie ancora per l'ennesimo aiuto
;-))


il controllo CTerminal:
mamma mia che contorsioni mentali !! Ma non bastava fare l'override
della OnCancel() ? Togliendo la chiamata alla classe base la dialong
non dovrebbe piu' chiudersi. In quanto all'invio di solito non e' un
problema, basta togliere il bottone Ok...
Gianpaolo Bottin
- Live Long and Prosper -

Alex, grazie ancora per l'ennesimo aiuto
Prego!
Alex
--
Automatic posted from 
mail.tin.it
 [194.243.154.49]
via Mailgate Server - 
http://www.mailgate.org
Newsgroup: it.comp.lang.c++
Titolo: Ancora covarianza

     D1 *p4 = pd -> func();
Questo e' proprio il fattore che fa si che il C++ supporti la covarianza
sul tipo ritornato senza stravolgere il resto del linguaggio.
L'istruzione qui sopra *deve* essere corretta in base al tipo statico
dei suoi elementi (altrimenti il compilatore dovrebbe compiere
un'analisi completa dei possibili flussi di controllo che portano a
questa istruzione per verificarne la correttezza).
L'espressione pd->func(), dal punto di vista del compilatore,
restituisce un B1* perche' il tipo statico di pd e' B1* . Il meccanismo
di covarianza e' quello che fa si che l'istruzione [1] sia valida, ma
anche che lo sia
D2 * pd2 = new D2;
D1 * pd1 = pd2->func();
Senza covarianza D2::func() avrebbe dovuto ritornare B1* e avrei dovuto
scrivere
D1 * pd1 = dynamic_cast<D1*>(pd2->func());
(che non avrebbe funzionato perche' B1 non ha metodi virtuali)
Ciao,
Nicola

Cari amici, non riesco a capire perché il seguente codice mi dà errore:
#include <iostream>
class B1 {};
class D1: public B1 {};
class B2
{
    public:
        virtual B1 *func() { std::cout << "B2::func()" << std::endl;
return 0; }
};
class D2: public B2
{
    public:
        D1 *func() { std::cout << "D2::func()" << std::endl; return 0; }
};
int main()
{
    B2 *pb = new B2;
    B2 *pd = new D2;
    B1 *p1 = pb -> func();     // Sostituibilità
    B1 *p2 = pd -> func();
    D1 *p3 = pb -> func();     // Not allowed for type safe
    D1 *p4 = pd -> func();
    delete pd;
    delete pb;
}
L'errore è alle righe
D1 *p3 = pb -> func();     // Not allowed for type safe
D1 *p4 = pd -> func();
e dice che non si può convertire un B1 * in un D1 *. Ora, riesco a
capirlo per la prima in quanto pb punta ad un B2 e quindi viene chiamata
la funzione B2::func() che restituisce un B1 * che non può essere
assegnato ad un D1 *. Ma non lo capisco per la seconda in quanto pd
punta ad un D2 e quindi verrebbe chiamata la funzione D2::func() che
restituisce un D1 * che dovrebbe poter essere assegnato ad un D1 *.
Cosa mi sfugge?
EMG
PS. Provato con BCC55 e DJGPP.

Cosa mi sfugge?
Il compilatore non puo` sapere se pd punta effettivamente ad una
istanza di classe derivata o meno... Sa solo che ottiene almeno un
puntatore a classe base.
Paolo

 sul tipo ritornato senza stravolgere il resto del linguaggio.
Grazie molte della spiegazione.
EMG
Newsgroup: it.comp.lang.c++
Titolo: redirezione stdin e input da console

Salve a tutti. Sto (ri)studiandomi il c++ usando il compilatore GNU
in ambiente Linux e Windows (con Cygwin); dal momento che Cygwin
non ha un comando more, me lo sto scrivendo io in c++. Il mio
problema e' il seguente: se da linea di comando (bash) redirigo lo stdin
tramite una pipe, come si fa classicamente con il comando more:
$ cat pippo | more
cin ora è rediretto sullo stdout di pippo. Come faccio allora per
intercettare i tasti premuti da console, indispensabile per implementare
il "premi un tasto per continuare"?
Grazie
Pietro
--
To answer take your filthy hands out of my address.

 il "premi un tasto per continuare"?
Leggendo direttamente dal terminale, con qualche libreria
tipo termcap/ncurses (che ti serve anche per sapere quante
righe ci sono o per implementare qualche funzione avanzata).
	Mauro
Newsgroup: it.comp.lang.c++
Titolo: portabilità programmi c++ in altri pc?

una volta realizzato e compilato un programma in c++ in windows, viene
mantenuta la portabilità dell'eseguibile su altri pc su cui è
installata la stessa piattaforma windows?

 installata la stessa piattaforma windows?
I dettagli relativi allo specifico sistema operativo sono Off Topic, ma, 
in generale, ovviamente e' possibile scrivere un programma in C++, 
compilarlo e distribuire agli utente solo gli eseguibili. E' quello che 
fanno la stragrande maggioranza del programmatori C++ per Windows.
Perche' il programma sia utilizzabile e' necessario che l'hardware sia 
compatibile, che il sistema operativo sia compatibile, e che siano 
installate e accessibili le eventuali librerie dinamiche e utility usate 
dall'applicazione.
-- 
     Carlo Milanesi
 
http://digilander.libero.it/carlmila

Newsgroup: it.comp.lang.c++
Titolo: ATL

Che cosa è l'ATL ????????


ActiveX Template Library.
E' un insiemi di classi C++, basate anche sui template, che incapsulano
gran parte della realizzazione di componenti COM, fornendo
wrapper per la creazione/istanziazione, wrapper per l'accesso
alle "proprieta'" di un oggetto COM, reference counting, creazione
della class factory, aggregazione.
La risposta non pretende di essere esaustiva.
Esistono molti libri sull'argomento:
Della Wrox Press c'e' la serie di Grimes,
Della Addison Wesley l'ALT Internals
-----------== Posted via Deja News, The Discussion Network ==----------
http://www.dejanews.com/
       Search, Read, Discuss, or Start Your Own    


In italiano, Massimo Fortunat ne ha fatto una survey sui numeri 13 e 14 di 
PDJ.
-- 
God is Real, unless declared Integer
Newsgroup: it.comp.lang.c++
Titolo: wxWindow

Scusate, ma potete spiegarmi come si installa wxWindow 2 per favore?
C'ho capito poco o niente, grazie

]

]
Ambiente Windows98, scusa.
NB: compilatore VC++5.0
grazie!!!


Allora: qualche mese fa l'avevo installato ed assieme alla
distribuzione (non se nello stesso file od in un file da scaricare a
parte) c'erano i file di progetto per il borland c ed il visual c ed
usando questi non ho avuto problemi (purtroppo ora non posso
verificare dove sono quei file perche' non li ho sottomano)


On Mon, 13 Sep 1999 20:51:57 GMT, 
scia...@mind.your.business.com
(Sciasbat) wrote:
Ma ha un interfaccia grafica?(come Fltk)
C'e' il file install, ma dopo che ho compilato un paio di progetti non
so come fare.
grazie!!

so come fare.
Hai compilato le librerie etc??
Se si' basta che prendi un esempio tipo l'applicazione "hello world"
ed aggiungi funzionalita' (non ho mai fatto applicazioni serie, l'ho
solo vista un po', ma mi sembra abbia classi decisamente poco
"pesanti" e semplici e le puoi usare senza pisogno di ausigli grafici)


Newsgroup: it.comp.lang.c++
Titolo: dimensioni di un vector

aspita.. riempire pochi dati in un oggetto e inserire circa 800 voci in un
vector mi impiega diversi minuti.. e soprattutto il programma si blocca e
windows dice che ho usato troppa ram????
non ci credo...
sto importando un file da 40k... non posso credere che messo in memoria mi
riempie piů di 40 mega di ram...
in effetti il programma funziona perfettamente quando metto pochissime
righe... ma con pochissime righe il programma non mi serve...
posto la funzione per l'input dei dati..
mi consigliate qualcosa per migliorare le prestazioni??
   istream& operator>>(istream& os, quotazione& q){
        os >> q.nome >> q.codice >> q.quantita >> q.dataAcquisto >>
q.prezzoAcquisto;
        valore app;
        while (!os.eof()) {
                os >> app;
                q.quotazioni.push_back(app);
        }//end for
        return os;
    }//end >>
grazie
Giulio

         }//end for
Quando i commenti non solo sono inutili, ma sono pure dannosi...
Ciao,
Nicola
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

 Quando i commenti non solo sono inutili, ma sono pure dannosi...
sarà, ma da quando ho cominciato a specificare cosa chiudevano le parentesi
chiuse ho smesso anche di avere problemi relativi alle parentesi... certo
ora i programmi evidenziano la parentesi che si sta chiudendo, però questa
la considero una buona abitudine..
Per il for vabhe.. ho cambiato un for in while mentre scrivevo, ma l'assenza
di for nella funzione non da  grossi problemi, si capisce che chiude un
while.
---
Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system (
http://www.grisoft.com
).
Version: 6.0.426 / Virus Database: 239 - Release Date: 02/12/2002

Newsgroup: it.comp.lang.c++
Titolo: overflow

Sono sempre io, volevo sapere se esiste una funzione in grado di indicarmi
quando una variabile va in overflow.
Ciao grazie!


... togliete Ino dal mio nome per e-mail ...
Newsgroup: it.comp.lang.c++
Titolo: Ridirezione di cout

Ciao,
come si fa a ridirigere gli stream predefiniti cin, cout, cerr verso
altri dispositivi (o meglio, verso dei file)?
Grazie
Robby

 altri dispositivi (o meglio, verso dei file)?
Puoi assegnare qualsivoglia ostream a cout e cerr, qualsivoglia
istream a cin, usando il normale operator=.
Alex
Newsgroup: it.comp.lang.c++
Titolo: Dove posso scaricare?

Dove posso scaricarmi un compilatore?
grazie
<Fabrizio>
mailto:
hm...@tin.it
mailto:
peru...@tin.it
http://utenti.tripod.it/FABRYS

 
www.delorie.com
Ciao,
Gianfranco

 Dove posso scaricarmi un compilatore?
Prendi il DJGPP per DOS all'indirizzo 
http://www.delorie.com/djgpp
.
EMG

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

Salve uso il Borland C++ 3.1,
volevo sapere come si possono creare librerie .lib con tale compilatore.
Grazie.

 volevo sapere come si possono creare librerie .lib con tale compilatore.
Con l'utility TLIB.EXE.
EMG

Newsgroup: it.comp.lang.c++
Titolo: Quale sistema operativo e compilatore.

Mi  e' parso che a molti di voi non piaccia Windows
e le sue API, non parlate di Linux.
Potrei sapere se avete dei sistemi operativi e compilatori
di riferimento?
Non riesco a pensare ad un liguaggio cosi' in astratto,
senza servizi di sistema e librerie di compilatore.
Cosa mi sfugge? Per favore volete illuminarmi?
Grazie. M

 Cosa mi sfugge? Per favore volete illuminarmi?
Il linguaggio e' definito con una libreria ben definita. La libreria si compone
principalmente della STL e della vecchia libreria C (e di poco altro).
In termini di accesso al sistema sono previsti accessi al timer e all'orologio e
accessi agli stream, che comprendono gli stream di default (fra cui i piu' usati
sono cin e cout che corrispondono alla tastiera e alla console) e ai file
(accedibili sia sotto forma di stream che tramite la libreria C).
In pratica il C++ standard, in termini di accesso al sistema, permette quello
che era permesso in C standard.
--
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: Dialog e PropertyPage, HELP please

Vi descrivo brevemente il problema:
All'interno del Workspace ci sono qualcosa tipo un centinaio di
propertysheet. Ogni property page viene ovviamente implementata tramite la
costruzione di una dialog alla quale è associata una classe derivata da
propertypaga. Nel progetto l'estetica è FONDAMENTALE.
Mi ritrovo a dover centrare il contenuto delle dialog rispetto alle
propertysheet di appartenenza. Di seguito ciò che ho provato ma non ha avuto
esiti positivi:
CenterWindow: Nulla da fare, visto che le dimensioni delle propertypage sono
identiche per tutte
GetClientRect e GetWindowRect non danno esiti positivi.
Per favore c'è qualcuno che sa risolvermi sto problema?
Grazie
ZaZy

 Per favore c'è qualcuno che sa risolvermi sto problema?
Quale problema di c++? 
-- 
Luc

 costruzione di una dialog
Cos'è una dialog?

Cos'è un progetto?

Cos'è CenterWindow?



Quale problema di c++?
--
Luc
Ok, Luc, originalissimo modo per farmi capire che consideri il posto OT.
Ma visto che il mio News server non mi fa accedere ai newsgroup esteri e
visto che qui spesso e volentieri si parla di VC++, ho pensato di postarlo
qui. Scusami se la cosa ti da fastidio, ma non so dove altro postarlo....se
poi sai indicarmi qualche altro newsgroup ben venga

 poi sai indicarmi qualche altro newsgroup ben venga
Innanzitutto quota meglio, secondo non lo considero OT il tuo post: lo 
è. Terzo non capisco il problema che hai nella gerarchia it.* dove trovi 
it.comp.programmare.win32.  
-- 
Luc

 it.comp.programmare.win32.
Il problema l'ho capito io e se vuoi te lo spiego... :)
Ma perchč sei cosě scontroso con (quasi) tutti?

Newsgroup: it.comp.lang.c++
Titolo: Ordinamento matrice

Avrei bisogno fare l'ordinamento ingenuo di una matrice (array 
bidimensionale) di interi.
La cosa mi rimane molto difficile da mettere in atto.
Sapete come fare e/o avete del codice da darmi?
Grazie mille! 

 bidimensionale) di interi.
Cosa significa esattamente "ordinamento ingenuo"?
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

Grazie ho risolto.
Se serve a qualcuno posto il codice
Newsgroup: it.comp.lang.c++
Titolo: Borland C++ Builder -> programmi C per MS-DOS

Scusate sono un principiante.
Dovrei, per studio, sviluppare dei programmi in C.
Ho installato il Borland C++ Builder Enterprise.
Non riesco a compilare (anche banali) programmi in C senza che mi inserisca
classi ed altro per Windows.
Bisogna settarlo in qualche modo?
Grazie
Giorgio



in c devi fare un programma di tipo "console", l'interfaccia grafica
puoi dimenticartela
(file/nuovo -> console wizard)
-- 
]\/[ad]\/[age (
www.mindreamz.net
)
"Un Maestro insegue semplicemente la sua visione di Eccellenza in
qualunque cosa sta facendo e lascia agli altri decidere se sta 
lavorando o giocando. A lui sembra sempre di fare entrambe." - Anonimo

 puoi dimenticartela
Sì, ma resta un programma per Windows. Con C++Builder non
puoi compilare per DOS puro.
==========================
Stefano Frosio
http://www.esse-effe.com
==========================

puoi compilare per DOS puro.
si parlava di c puro, non di dos puro


 si parlava di c puro, non di dos puro
Giusto, ho avuto un lapsus, ma mi sono accorto quando già
era partito il messaggio...


 si parlava di c puro, non di dos puro
Beh perň ora che ci faccio caso nell'oggetto c'č "programmi
C per MS-DOS"...


C per MS-DOS"...
io di solito rispondo al testo del messaggio, non all'oggetto
cmq, non che ciň sia cosě interessante...


 io di solito rispondo al testo del messaggio, non
all'oggetto
Io invece ho il vizio di considerare tutto... :-)


 >Giorgio
questo non e' possibile devi scegliere un SO Dos o Windows
quindi o Console o Win32
ciao

Newsgroup: it.comp.lang.c++
Titolo: Borland C++ 3.1 e la gestione delle eccezioni

Non so come il compilatore gestisce le eccezioni .
Le parole riservate  " throw ,try,catch " vengono riconosciute
dall'editor ma durante la compilazione mi appaiono 2 errori di
sintassi : 
#include <stdio.h>
void Prova(void)
{
 throw(100) ;  // 1 errore di sintassi
}
main()
{
 try // 2 errore di sintassi
{
Prova() ;
}
catch(int value)
{
 printf("%d",value) ;
}
return 0 ;
}
 Qual'e' la forma corretta ?
 
~~~~~~~~~~~~~~~~~
MAINARDI Gianfranco
Burago di Molgora (MI)
Italia
Email : 
main...@tin.it
ICQ# number : 11607125
~~~~~~~~~~~~~~~~~

 Qual'e' la forma corretta ?
La forma che riporti e` corretta; un compilatore aggiornato
la accetta senza problemi.  Sospetto che il compilatore che
nomini sia molto vecchio, e che dovrai passare a uno piu`
recente se vuoi usare costrutti standard come le exception.
Alex

sintassi :
Il Bc++ 3.1 NON gestisce le eccezioni con try catch. Le parole vengono
riconosciute
come keywords solo per compatibilita' verso altri compilatori che le
gestiscono. Se non
ricordo male, e' dalla versione 4.0 che la Borland si e' decisa a supportare
la gestione delle
eccezioni in questa forma.
Byez.
--
Stefano Tempesta
s.tem...@usa.net
http://tempesta.freeweb.org
--------------------------------
<<< Think indipendent, cos' indipendent you can't be >>>
Newsgroup: it.comp.lang.c++
Titolo: Librerie

Salve a tutti!!
Dove è possibile trovare una lista delle funzioni utilizzabili con le varie
librerie? (per esempio iostream.h math.h stdlib.h etc...)
Grazie

 ha scritto

Libri:
Per il C sul Kernighan-Ritchie
Per il nuovo standard C99 non credo sia ancora uscito nulla.
Per il C++ il libro di riferimento e' quello di Stroustrup (3rd edition)
In alternativa puoi fare riferimento direttamente agli standard.
Cerca come acquistarli sul sito dell' ANSI.
Per il C++:
http://webstore.ansi.org/ansidocstore/product.asp?sku=ISO%2FIEC+14882%2D1998
--
Gerolamo

Salve a tutti!!
Dove è possibile trovare una lista delle funzioni utilizzabili con le varie
librerie? (per esempio iostream.h math.h stdlib.h etc...)
Grazie

 ha scritto

Leggere le risposte, invece che continuare a chiedere, ti fa schifo?
--
Gerolamo

 librerie? (per esempio iostream.h math.h stdlib.h etc...)
In un testo che descrive il linguaggio standard (Stroustrup,
Lippmann-Lajoie o uno degli altri indicati nelle FAQ).  O lo
Josuttis (ibid.) che descrive esaurientemente la sola Standard
Library.  Headers tipici C come math e stdlib sono descritti
a puntino nei testi di C come il K&R.
-- 
Maurizio Loreti  - Linux Is Not UniX -  
http://www.pd.infn.it/~loreti/mlo.html
Univ. of Padova, Dept. of Physics - Padova, Italy            
lor...@pd.infn.it

Ciao a tutti, sono nuovo del NG
programmo da diversi anni ed ora, dopo un periodo di stasi
mi stņ riavvicinando al C/C++ (Borland);
vorrei sapere se c'č qualcuno che puņ indicarmi un sito
contenente delle librerie C/C++ di matematica discreta,
analisi, geometria, trigonometria, statistica etc.
grazie in anticipo
Werther

 ha scritto nel messaggio
news:_nh78.13691$5M4.4...@twister2.libero.it...

Newsgroup: it.comp.lang.c++
Titolo: Spedire e-mail da CGI...

Salve a tutti,
sto disperatamente cercando di realizzare un CGI in VC5 che mi permetta di
mandare via e-mail il risultato di una form. Il server che mi ospita usa NT4
e dunque non dispone del sendmail Unix... qualcuno mi sa dare qualche dritta
o meglio ancora qualche piccolo esempio da "copiare"?
Grazie anticipatamente - Alessio
________________________________________________________
Alessio - 
Ale...@isa.it
 - ICQ: 9549126
http://www.emma97.com/hardwaresite
 - 
Ale...@emma97.com
http://www.checkservice.com
 - 
Webm...@checkservice.com

 o meglio ancora qualche piccolo esempio da "copiare"?
Hai a disposizione un senmail anche su un'altra macchina?
Se si ti puoi connettere a quello e dialogare in SMTP. 
-- 
     (ZZZ)       Filippo Salotti, Bagni di Lucca, Lucca, Italy.
    //   \\  _                 E-mail : 
fil...@humnet.unipi.it
   /Y\    ZD<_o===============================================o
 .oZZZZZo.     | Studente Ingegneria Informatica Automatica  |
<OXXXXXXXO>    | Dip. Sistemi Elettrici Universita' di Pisa. |

Newsgroup: it.comp.lang.c++
Titolo: Algoritmi

 
Non mi ricordo i precisamente il nome dell'autore, ma piu' o meno suona
cosi':
Sedjevick
Algoritmi in C
Sedjeveick
Algoritmi in C++
I due libri sono abbastanza simili: il secondo tiene conte delle novita' e
degli aggiornamenti per la programmazione ad oggetti definendo le classi in
cui gli algoritmi si presentano come metodi delle stesse. Ma alla fin fine
gli algoritmi, con la conseguente trattazione sulla complessita' sono
sempre gli stessi.
I testi sono universitari per cui per apprezzarli bisognerebbe avere
qualche nozione matematica specifica.
Massimiliano

 Algoritmi in C++
Il nome esatto e`:
Robert Sedgewick
Algoritmi in C++
Editore: Addison-Wesley
ISBN: 88-7192-054-6
Lire 74.000   :-(
Ciao!
-- 
+---------| Linux: The choice of a GNU generation! |---------+
|  Franco Sarli -- 
http://www.geocities.com/HotSprings/5058
  |
|   E-mail: 
sp00304...@it.net
     FidoNet: 2:334/708.5   |
+--| Pgp key available, mail me with subject: get_pgp_key |--+                                   FOR MAIL ME REMOVE "+nospam"
Newsgroup: it.comp.lang.c++
Titolo: Stabilire a runtime se una variabile è un oggetto o un tipo primitvo

Ciao a tutti
sto realizzando una classe con i template e vorrei fare dei confronti
sugli elementi.
Il problema stà nell'esecuzione del distruttore, cioè se io passo un
tipo primitivo come template non posso eseguire la delete. Esisite un
modo per stabilire il tipo di dato del template a runtime??  nel senso
a me basterebbe poter utilizzare un metodo che ritorni true se il
template è un tipo primitivo e false in caso contrario.
Ciao e grazie 1000 in anticipo a tutti per l'aiuto

Marco Capoferri ha scritto:

Con i cosiddetti type traits (vedi ad esempio 
http://www.boost.org/doc/libs/1_38_0/libs/type_traits/doc/html/index.html
 )
puoi scoprire un sacco di cose sui tipi a compile time (che in generale 
è meglio che run time)
Ma da quel che scrivi, mi sembra che tu abbia le idee poco chiare su 
delete / tipi primitivi: la delete la dovrai chiamare per roba allocata 
con new, a prescindere dal tipo... Non è che per caso provieni da java o 
C#?
Magari prova a postare un pezzo di codice...

 C#?
Provengo da java e il C++ lo devo fare per via di un esame in
università.
So che non posso fare il delete sui tipi primitivi e proprio per
questo motivo avrei bisogno di individuare a runtime il tipo di dato
Ciao Marco

 
Guarda che non è così!
delete lo devi fare sui *puntatori* che ti ha restituito new.
INDIPENDENTEMENTE dal tipo. Secondo me (come molti javisti) non hai 
chiara la differenza tra heap e stack. Che non ha nulla a che vedere con 
i tipi: in c++ puoi decidere liberamente cosa mettere su stack e cosa su 
heap.
Poi il fatto che tu voglia prendere decisioni a run time quando stai 
usando i template (che sono compile time) potrebbe essere sintomo di 
qualche errore di fondo...

Newsgroup: it.comp.lang.c++
Titolo: allocare e deallocare una matrice

volevo allocare una matrice di char[6][54] con new, ma non sono
riuscito a capire che tipo restituisce... pensavo a un * se e' il
puntatore alla prima cella allocata... oppure un *** se e' l indirizzo
di una matrice, ma non funziona ne
char *prighe = new char[6][54]; 
char ***prighe = new char[6][54];
per deallocarlo (prima devo riuscire a crearlo :D ma confido in voi
asd), va bene delete[] giustoz?

 volevo allocare una matrice di char[6][54] con new, ma non sono
Vedi:
http://utenti.lycos.it/SourceNet/faq_cpp.htm#d8
ciao,
g.
Newsgroup: it.comp.lang.c++
Titolo: dati membro statici

Chiaritemi un dilemma.
Ho la necessità di creare una classe con un dato membro pubblico (nel caso
un vettore).
Fin qui tutto bene, pero' vorrei anche fare in modo che
eventuali altre istanze della classe NON mi creino
altre istanze del vettore: praticamente N istanze della
classe dovranno tutte avere il dato membro allocato
alla medesima locaz. di memoria, affinche' le modifiche apportate da
un'istanza siano poi visibili anche a tutte le altre.
Evitando di usare puntatori, la prima cosa che mi e' venuta in mente e'
stata quella di dichiarare STATIC
questo dato membro.
OK: la libreria (in quanto tutta questa roba viene
compilata come .LIB con BC++3.1) viene compilata
bene, mentre l'applicazione da un errore di linking,
sostenendo che classe::datomembro non esiste.
E' vero che STATIC e' un modificatore che rende una
entita' visibile solo nello scope del file, ma e' pure vero
che dovrebbe fare quello che desidero.
Cosa mi consigliate ?
Ciao
Luca

 entita' visibile solo nello scope del file, ma e' pure vero
"static" e` una keyword pesantemente sovraccarica in
C++, e in particolare, quando e` usata come attributo
di un membro di una classe, non ha assolutamente nulla
a che vedere con "lo scope del file".
Alex
Newsgroup: it.comp.lang.c++
Titolo: Qualcuno usa kdevelop?

E' possibile scrivere un solo sorgente
(es. hello.cpp) e compilarlo, senza passare
per una creazione di un progetto?
Grazie

io lo uso, non credo comunque...
se non ti và di creare il progetto puoi sempre usare gcc da riga di comando.
La cosa però è abbastanza barbosa
"Ale55andro"
<AleXander.NoSpam.DontWriteToMe_SpammametaYourSelf_Now_Against_A_Wall@tele2.
it> ha scritto nel messaggio
news:jb984vst8k6dhuofr...@4ax.com...


 comando. La cosa però è abbastanza barbosa
puoi sempre fare un semplice makefile.
P.S. Sono felice di aver trovato altre 2 persone con le quali consultarmi su 
kdevelop!
Fino ad ora i miei messaggi sui vari ng sembravano cadere nel NULL
 
__________________________________
"Ama e fai c'ho che vuoi".... 
__________________________________

 Fino ad ora i miei messaggi sui vari ng sembravano cadere nel NULL
O nello 0? :-)

kdevelop!
Ormai Linux e' il futuro, chi non inizia a studiarsi questo OS
rischia di rimanere fuori nel giro di qualche anno; ho parlato con un
responsabile di un test-center per l'EDCL e mi ha detto che 
Linux e' una realta' in moltissime scuole, ma che le
indicazioni per il futuro (anche dall'AICA) sono
sostanzialemnte queste: "software libero e Linux".
Ciao

"Ale55andro"
<AleXander.NoSpam.DontWriteToMe_SpammametaYourSelf_Now_Against_A_Wall@tele2.
it> wrote in message news:kdh94v4kbvpj3sidj...@4ax.com...

se te l'ha detto lui.. come contraddirlo..
Uno Sbirish un pò perplesso.

Io credo che il futuro sia l'open source, non un nome di so.
Bisogna ammettere che windoz è un so decente capace di avvicinare tutti al
computer, e credo che le cose inizieranno a cambiare se Zio Bill ci darà i
codici sorgente...
Dopotutto è questa la forza di Linuz, il fatto di essere open a differenza
dell'ultrachiuso windoz
non convenite?
"Ale55andro"
<AleXander.NoSpam.DontWriteToMe_SpammametaYourSelf_Now_Against_A_Wall@tele2.
it> ha scritto nel messaggio
news:kdh94v4kbvpj3sidj...@4ax.com...


 codici sorgente...
Esistono valide alternative anche a linux.
Ed esistono anche valide alternative alla GPL che, nonostante il baccano,
resta una licenza restrittiva.
Se parliamo di 'commercio' non mi lancerei in una affermazione quale 'il
futuro è l'opensource'
non che io sia contrario, si intenda, solo un pò scettico sulla tendenza.
Ciao
    Sbirish.

 consultarmi su kdevelop!
Penso che ne troveresti molte di più su
it.comp.os.linux.development
E soprattutto su quel NG saresti in topic.
Cosa che NON sei qui.
--
Gerolamo
E' in corso la votazione di it.comp.software.webserver
Se sei interessato alla creazione di questo NG, leggi il messaggio:
news:MK.it.comp.softw...@news.nic.it

 Ormai Linux e' il futuro
Sei OT dal NG e dalla realtà soprattutto...
-- 
Luc.
Newsgroup: it.comp.lang.c++
Titolo: help me!!!please!!! Cerco VC++ 6 grazie

Ciao, sono un ragazzo che cerca il programma V c++6 italiano(poss.), se
qualcuno sa' qualche sito dove posso scaricarlo possibilmente non a
pagamento, lo ringrazio.... mi avvisi subito...
xm...@mail6.clio.it
f.ma...@tiscalinet.it

 wrote in message
82p5u3$phm$1...@lacerta.tiscalinet.it...


Aggiungerei che presumibilmente molti dei partecipanti a questo
newsgroup si guadagnano da vivere facendosi pagare il software che
scrivono. Penso che tutti questi (me compreso) non sarebbero molto
contenti di sapere che i loro programmi vengono "scaricati" dalla rete
ed usati gratis.
Ciao,
Nicola

 e non solo... :-)
Oops, e da chi oltre ai professionisti? Dai marziani? 
Scusa l'ironia ma mi è venuta spontanea. Cmq concordo, si può comprare
una licenza studenti .... et voilà. Oppure si può usare il compilatore
gnu che costa ancora meno :-) e ti permette di imparare il C++ meglio
che con VC--
Ciao.
J

Forse intendeva professionisti qualunque del software. Quelli tosti,
invece...
Ciao,
Nicola

 professionista del software.
Sul "qualsiasi professionista" avrei molto da obiettare.


Nicola Musatti wrote:

Io purtroppo non sono proprietario del software che scrivo,
per cui piu` che il software che scrivo mi viene pagato il
tempo che perdo a scriverlo.
Comunque  se il software fosse mio sarei molto contento che se ne
facessero
qualche miliardo di copie illegali.
Cosi` dopo che tutti avranno imparato ad usare il mio software
e sara` per loro problematico passare a software della concorrenza
senza perdere tempo, saranno tutti piu` contenti di pagare
100.000-200.000 lire (visto che le leggi sul copyright mi
consentirebbero di farmi pagare) a me piuttosto che doversi studiare il
software della concorrenza.
Cosi` potrei guadagnare un sacco di soldi, praticamente senza
muovere un dito, specialmente se tutti quelli che lo hanno copiato
fossero professionisti.
Senza contare che solo io sarei autorizzato ad apportare eventuali
modifiche a quel software per cui tutta la eventuale manutenzione
sarebbe fonte di altro guadagno per me.
Marco Guidi

 Nicola
Newsgroup: it.comp.lang.c++
Titolo: fgets

Salve, ho dei problemi con fgets.
Uso fgets per leggere intere righe da un file, e per inserire i
rispettivi valori in variabili di una classe. Solo che nell'inserire i
valori ( anche quelli nulli ) , la funzione mi inserisce anche il
carattere di nuova riga finale, e questo crea problemi al resto del
programma. E' possibile fare degli accorgimenti per non farlo fare, o
anche usare qualche altra funzione ( la funzione deve perň anche poter
leggere una riga nulla, ed inserire comunque il valore ( niente quindi
) nella variabile.
Potete aiutarmi?
Ciao e Grazie 

E' possibile fare degli accorgimenti per non farlo fare, o
Leggi la riga comunque con fgets() ed elimina sostituisci manualmente
'\n' finale con '\0' .
Nota : follow-up su it.comp.lang.c
Newsgroup: it.comp.lang.c++
Titolo: DJGPP e ios_base

Ho provato  compilare con DJGPP un esempio tratto da C++ Primer, rigurdante
l'overloading dell'operatore >>. Mi viene segnalato il seguente errore:
ios_base: undeclared(first use of this function)
in corrispondenza della seguente linea
is.setstate(ios_base::failbit)
che dovrebbe a quanto leggo porre istream in condizione di "fail state".
E' una mancanza del compilatore o che altro?
Sostituendo ios_base con ios va tutto a posto. Perchč?
Grazie
Marco


In effetti non c'č alcun riferimento ad ios_base negli header files del
DJGPP e neanche Bruce Eckel ne parla nel suo Thinking in C++. Non so che
dire...
EMG

Newsgroup: it.comp.lang.c++
Titolo: MFC 4.0 e Jeff Prosise

Ho acquistato il libro di Jeff Prosise Programming Windows 95 with MFC, ma a
quanto pare gli esempi richiededono delle librerie che non ho installate.
Una di queste si chiama MFC40D.dll: io ho parecchi file simili, solo che
hanno nomi del tipo MFC42.dll; sarà un'altra versione?
Come faccio a procurarmi queste librerie? Qualcuno che le ha, può spedirmele
via e-mail?
grazie
--
San Vegeta from Hell
http://www.geocities.com/Area51/Dungeon/8436
http://come.to/Fantasy.it

hanno nomi del tipo MFC42.dll; sarà un'altra versione?
E` una versione successiva, ma compatibile (ti serve, in realta`, Mfc42D.Dll;
la D subito prima del "." specifica trattarsi di una versione a debug).
Dovrebbe bastarti ricompilare i vari progetti ("rebuild-all") cosi` che, dagli
header file aggiornati, venga anche il nome giusto per le DLL da usare.
Alex

Newsgroup: it.comp.lang.c++
Titolo: INSEGNO IL C++ GRATIS!!!

-- 
Alessio Treglia
pagina Web
http://www.grisnet.it/utenti/treglia
sito FTP 
ftp://ftp.grisnet.it/utenti/treglia
ChatInfo
server: 
comicsrv3.microsoft.com
chat: #Treglia_Chat
e-mail
tre...@grisnet.it
atre...@freemail.it
al...@freemail.it
pro...@freemail.it

Ma se lo insegni gratis, ci spieghi come mai ogni 2-3 giorni posti tanti
messaggi tutti uguali?
Newsgroup: it.comp.lang.c++
Titolo: CTime e CString

Ciao,
scusate la banalità della domanda!!
io ho:
CString str;
CTime tm;
str="01/01/1999";
come faccio a "castare" tm con str, cioè a trasformare la stringa in classe
CTime??
Grazie a tutti

 wrote in message news:7tve8a$1em$1...@nslave1.tin.it...

Meglio per questo tipo di domande ti rivolgi a
it.comp.programmare.win32
Cmq per questa volta...
str = tm.Format("%d%m%Y");
Scusa una domanda, ma dove hai trovato CTime, non hai trovato anche la
descrizione delle sue funzioni membro ?
MM

Newsgroup: it.comp.lang.c++
Titolo: Creazione di una Dll

salve ragazzi vorrei chiedervi un piccolo aiuto.. :)
Devo creare una dll in C++, possiedo sia il VC++ 5 che il BC++B 3 solo che
non sono capace di creare una dll con nessuno dei due :)
come devo fare a :
rendere pubbliche anche ad altri linguaggi (Delphi) delle funzioni nella mia
dll?
richiamarla da altri programmi senza utilizzare il file NOmeDll.h
Grazie a tuti per un eventuale risposta.

it.comp.programmare.win32

Newsgroup: it.comp.lang.c++
Titolo: MFC e

Salve a Tutti.
Sto iniziando a programmare con mfc ed essendo all'inizio ho i primi
problemi.
Devo implementare un interprete, e vorrei visualizzare il sorgente come fa
visual c++ con i propri, utilizzando cioč la sintassi colorata.
Posso utilizzare la classe CEditview.?
C'č un vincolo perň che devo rispettare. Devo poter scandire il sorgente
carattere per carattere.
Vi prego aiutatemi.
Ciao.

carattere per carattere.
Ne` i controlli EDIT, ne` quelli RICH-EDIT, sono particolarmente
orientati all'accesso al singolo carattere; l'unico modo che mi viene
in mente cosi` sui due piedi e` di settare la _selection_ del controllo
all'unico carattere che vorresti leggere (funzione-membro SetSel)
e poi ottenere il testo della selezione (funzione GetSelText).  Non e`,
probabilmente, molto efficiente; meglio tenere il testo nella forma che
piu` ti aggrada nel tuo oggetto-documento, e usare il Rich-Edit solo
per *mostrare* quella porzione del testo che e` "in vista" in termini
di scrolling, eccetera.
Alex

Newsgroup: it.comp.lang.c++
Titolo: neofita Visual_C++ cerca libri in italiano

Alle prime armi col visual c++ della microsoft sto cercando manuali
esplicativi passo-passo in italiano della versione 5.0
Sapete se esiste qualcosa in commercio?
grazie

...


Newsgroup: it.comp.lang.c++
Titolo: ScuSce Ufficiali

Ho scritto un messaggio in cui volevo craccare una chiave Hw.
Il mio intento personale, non è sicuramente ne quello di rivendere sw ne di
ridistribuirlo, volevo solo andare più affondo con la programmazione, e
visto che l'Università ora è chiusa ed ho un bel pò di tempo, volevo
dedicarmici a pieno . Mi dispiace che qualche professionista si sia sentito
offeso, e mi scuso pubblicamente!!! Mi è dispiaciuto soprattutto essere
offeso, ho sbagliato, ma un pò di moderazione non fa male!!! Mi scuso
ancora. Grazie!

Nessuno voleva offendere te, ma la tua idea di scrivere una cosa del genere
in un NG aperto come questo.
Ciao, Simone.
Newsgroup: it.comp.lang.c++
Titolo: Finestra dialogo

E' da poco tempo che sto provando ad utilizzare il Visual C++ ma,
sviluppando un'applicazione   non  riesco a visualizzare una finestra di
dialogo dalla barra menů.
Ho incluso la classe del dialogo
// Fisica.cpp : Defines the class behaviors for the application.
//
#include "stdafx.h"
#include "Fisica.h"
#include "MotoDlg.h"  // questa č la classe inclusa
#include "MainFrm.h"
#include "FisicaDoc.h"
#include "FisicaView.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
Poi ho anche mappato il tutto con:
////////////////////////////////////////////////////////////////////////////
/
// CFisicaApp
BEGIN_MESSAGE_MAP(CFisicaApp, CWinApp)
 //{{AFX_MSG_MAP(CFisicaApp)
 ON_COMMAND(ID_APP_ABOUT, OnAppAbout)
 ON_COMMAND(ID_CALCOLA_MOTO, OnCalcolaMoto)
 //}}AFX_MSG_MAP
 // Standard file based document commands
 ON_COMMAND(ID_FILE_NEW, CWinApp::OnFileNew)
 ON_COMMAND(ID_FILE_OPEN, CWinApp::OnFileOpen)
// ON_COMMAND(ID_CALCOLA_MOTO, OnCalcolaMoto)
 // Standard print setup command
 ON_COMMAND(ID_CALCOLA_MOTO, CFisicaApp::OnCalcolaMoto)
 ON_COMMAND(ID_FILE_PRINT_SETUP, CWinApp::OnFilePrintSetup)
END_MESSAGE_MAP()
Ho anche inserito :
void CFisicaApp::OnCalcolaMoto()
{
 // TODO: Add your command handler code here
 CMotoDlg motoDlg;
 motoDlg.DoModal();
}
Quando compilo non restituisce nessun errore e nessun avertimento ma, quando
il programma č in esecuzione e provo ad avviare la finestra di dialogo,
dalla barra menů dell'applicazione questa e come se non l'avessi premuta.
Sono disperato, cosa devrei  fare per fare apparire la finesta di dialogo?
Grazie a tutti.

 Ho incluso la classe del dialogo
Qui sei OT, prova su it.comp.programmare.win32
Ciao
Gaetano
--
#exclude <windows>
#include <CSRSS>
printf("\t\t\b\b\b\b\b\b");.
printf("\t\t\b\b\b\b\b\b");

Newsgroup: it.comp.lang.c++
Titolo: Funzione lettura albero

Come posso in C realizzare una funzione che mi legga l'albero delle
directories dalla posizione corrente in poi e metta i nopmi dei files in un
array?
Grazie.
Mauro Di Natale
il...@tin.it

 array?
In C standard non si può fare. Devi ricorrere a funzioni specifiche del
tuo compilatore e/o del tuo sistema operativo. Es.: in DOS esistono le
findfirst()/findnext().
EMG

array?
Devi utilizzare necessariamente delle api del s.o.
In windows mi pare che siano FindFirstFile e FindNextFile.
Paolo
-----------------------------------------------------------------
  Paolo Marotta
  Computer Science, University of Pisa
  home:   
http://www.cli.di.unipi.it/~marotta
-----------------------------------------------------------------
Newsgroup: it.comp.lang.c++
Titolo: Equivalente dello Stroupstrup su Java

Salve,
scusate se sono fuori tema, ma è meglio secondo me fare questa domanda a 
voi piuttosto che al gruppo news su Java.
Vado al sodo: vorrei sapere se esiste un testo su Java equivalente allo 
Stroupstrup sul "C++ Linguaggio, Libreria Standard, Principi di 
programmazione"; intendo equivalente dal punto di vista del rigore 
formale della trattazione, dell'analisi, della completezza e 
sinteticità, della qualità degli esempi, della chiarezza 
dell'esposizione, del filo logico che lega i capitoli.


"Thinking in Java" ?


oppure
Java 7 The Complete Reference di Herbert Schildt
-- 
http://carnefrisca.blogspot.com
http://frischfleisch.deviantart.com

 Java 7 The Complete Reference di Herbert Schildt
Schildt io lo ricordo su C++ ed era imbarazzante.
Su Java e' decente?
-- 
-riko
http://www.enrico-franchi.org/
http://rik0-techtemple.blogspot.com/


se intendi java non l'ho trovato così scandaloso...
almeno, ho anche un buon ricordo di quello su Java2


Newsgroup: it.comp.lang.c++
Titolo: const_cast

Come definite il comportamento di questo codice ?
    const_cast<char*>("A")[0] = 'B';
Saluti
-- 
alef

 
indefinito :)
-- 
"Siamo una generazione di uomini cresciuti dalle donne, mi chiedo se 
un'altra donna è veramente la risposta che ci serve"


indefinito
5.2.11.7
[Note: Depending on the type of the object, a write operation through 
the pointer, lvalue or pointer to data member resulting from a 
const_cast that casts away a constqualifier may produce undefined 
behavior (7.1.5.1). ]
-- 
sbi


Grazie!
-- 
alef

Newsgroup: it.comp.lang.c++
Titolo: usare una dll nel proprio codice c++

salve a tutti
sto utilizzando visual c++ .net
come posso usare le funzioni contenute in una dll?
avete un po di codice di esempio
Grazie a tutti per la collaborazione

 avete un po di codice di esempio
Sei OT.
-- 
RiK0
[ non credo negli schemi non vincenti ]
[     two is an odd prime number.     ]

Newsgroup: it.comp.lang.c++
Titolo: Puntatori a funzioni delle classi





Salve a tutti,


qualcuno si ricorda la sintassi per dichiarare un 
puntatore a funzione


di una classe?  (mi sembra che il nome sia 
funtore????)


Cioe':


 


 


class A : public Base


{


    public:


    void Funz(int i,int 
j);


}


 


class B


{


    ??? pFunz;


}


 


dove B::pFunz e' il puntatore alla funzione 
A::Funz(int i,int j);


 


come lo devo dichiarare?


Come faccio a richiamarlo? Devo avere anche il 
puntatore alla classe per poterla richiamare?


E se non conosco la classe derivata ma quella base, 
si puo' richiamare ugualmente


la funzione?


 


ciao


-- 

------------------------------------------------------------------
     
Ing. Roberto Gioelli
     Megattera s.n.c. Soluzioni 
Informatiche
     Via Acqui, 6c - 12051 -  Alba 
(CN)
     e-mail: 
r.gi...@megattera.it
                    

     cell: 333-2386500, FAX: 0173-365214   

------------------------------------------------------------------







// puntatore a una funzione membro di
// TNODE che ritorna 
un float e non ha argomenti


 


class TNODE ;


 


typedef float  (TNODE::* PFN) ();


 


ciao
Newsgroup: it.comp.lang.c++
Titolo: bug su linker BorlandC/C++ ver. 6 (personal edition)

ciao...
qualcuno ha sperimentato il seguente bug ?
http://qc.borland.com/wc/qcmain.aspx?d=29216
io non so come venirne fuori....
un grazie infinite a chi vorra indicarmi una via di uscita... pare che
Borland sia "latitante"....
Grazie a tutti
--------------------------------
Inviato via 
http://arianna.libero.it/usenet/

Ciao,
Questo newsgroup si occupa del linguaggio C++ in quanto tale, e non di
aspetti specifici di particolari implementazioni, come ad esempio
C++/CLI. 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

 ha
scritto:

non ho letto il manifesto del gruppo e non pensavo di essere OT.
Grazie per i suggerimenti.
 Jack

Newsgroup: it.comp.lang.c++
Titolo: Shift binario e float

Mi sorge un dubbio.
Se ho un valore loat che voglio moltiplicare per una potenza di due tipo 
(2^8) posso fare una cosa del tipo
float << 255
o, dato che il numero č memorizzato in formato non "lineare" come un 
intero ma con base e mantissa il risultato diventa un totale gioco di 
fantasia?
Insomma la proposizione:
(float << 255) == (float * 255)
č vera?
matteo!

 č vera?
No, e come ti ho detto sopra non e' vera nemmeno per
i numeri interi.
Vale
N << 1 == N*2
N << 2 == N*4
N << 3 == N*8
etc.etc.etc.
ciao.
g.

Una cosa carina che aggiungo perché non tutti la sanno è che, se A e C
sono entrambi float o double, e B è una potenza di due o l'inverso di
una potenza di due, C = A * B non causa nessuna perdita di precisione
(perlomeno finché si rimane nel range rappresentabile), cosa in
generale non vera se B non è potenza (anche negativa) di due.

 il compilatore non te la faceva passare.
Devo aver fatto qualcosa di strano perche' non mi ha fermato quando ho 
provato.
Riprovo subito, grazie.
matteo!
Newsgroup: it.comp.lang.c++
Titolo: scrittura in modalita binaria

Ciao!
Ho un problema nella scrittura/lettura di un file in modalita binaria.
p.s. Ho utilizzato le funzioni C per scrivere in modalita binaria.
Ho creato una semplice classe di prova con un int ed un puntatore ad un
elemento successivo di tipo classe Prova e poi ho creato una lista
(funzionante)
class Prova{
   private:
   int value;
   Prova *next;
...
Questa e la funzione di scrittura:
void Prova::write(Prova *first){
   FILE *file = fopen("test.db", "wb");
   for(Prova *temp = first; temp != 0; temp = temp->next){
   fwrite(&temp->value, sizeof(int), 1, file);
   }
   fclose(file);
}
Riceve un puntatore al primo elemento della lista e poi scorrendoli fino
alla fine scrive di volta in volta il valore nel file.
Il problema e che l'ultimo valore viene scritto due volte. Ad esempio se i
valori sono 100, 34, 67, 1 quando poi li vado a rileggere dal file mi crea
una nuova lista con due 1! Ed il problema si ripropone se facessi fermare la
lista al terzo elemento. L'ultimo viene sempre scritto due volte.
Se qualcuno ha qualche idea... :) grazie


Chiudi la catena impostando a NULL il campo linkante??

 Se qualcuno ha qualche idea... :) grazie
non credo sia un problema di scrittura su file bensì di inserimento nella
lista.
Prova ad usare la lista standard
std::list<Prova>
e la classe fstream per scrivere e leggere su file.
Ciao
Andrea


la chiudo impostando a null o 0 il next dell'ultimo elemento

 lista.
no il problema nn e nell'inserimento nella lista perche in modalita testuale
funziona correttamente
inoltre la lista dello standard non ha le operazioni che mi servono quindi
tanto vale che sia io a crearla :)

 tanto vale che sia io a crearla :)
Potresti sempre derivare da std::list... perchè reinventare la ruota?
Ciao
Andrea

...






Sei sicuro che il probleme è alla scritura, o può essere anchè alla
lettura. Une errore classica è de verificare il fine de la lettura solo
prima de leggere -- in C et in C++, l'indicazione de la fine non viene
posizionnata che dopo una lettura chi non a funzionnata. Dunque, se fai
    while ( feof( file ) ) {
        int            tmp ;
        fread( &tmp, sizeof( int ), 1, file ) ;
        //  aggiunge tmp alla lista...
    }
dopo aver letto l'ultimo valore, farai la lettura encora una volta; il
valore in tmp non sera definito, mà tipicallemente, troverai il valore
precedente.
Corretto sarebbe:
    int             tmp ;
    while ( fread( &tmp, sizeof( int ), 1, file ) == 1 ) {
        //  aggiunge tmp alla lista...
    }
--
James Kanze           GABI Software         
http://www.gabi-soft.fr
Conseils en informatique orientée objet/
                   Beratung in objektorientierter Datenverarbeitung
9 place Sémard, 78210 St.-Cyr-l'École, France, 
+33 (0)1 30 23 00 34

 tanto vale che sia io a crearla :)
E quali sarebbero queste operazioni?
Non ti basta definire le operazioni che ti servono come funzioni che
prendono una lista o una coppia di iteratori?
        Mauro

termine del file vi è il carattere speciale EOF, che verrà anch'esso letto.
era questo il prob, grazie