mii-community/UsenetArchiveIT-conversations huggingface dataset:
Newsgroup: it.comp.lang.c++
Titolo: compilatore c

Sono in cerca di una versione del compilatore  C che possa girare con un
286.
Io posseggo, attualmente, il Turbo C++ versione  3.0 che non riesce a girare
con la macchina suddetta.
In attesa di una risposta ringrazio quanti hanno preso in considerazione il
messaggio.
Ciao !!!
mari...@complab.com

 wrote in message
7in00c$pm6$1...@news.albacom.net...

Io ho il Turbo C++ 1.00 della Borland ma non so se ti gira....
Se ti interessa fammi sapere via mail
Ciao Ciao
--
Kickaha, Master of MY Universe
E-MAIL: 
IO.Ki...@mclink.it
--------------------------
Moltissima gente confonde le opinioni con i pensieri
         "Herbert V. Prochnow"
Una conclusione è il punto dove sei stanco di pensare
         "Arthur Wright"

Newsgroup: it.comp.lang.c++
Titolo: dove sbaglio?

perkè non mi funziona......dove ho sbagliato?????
grazie
#include <iostream.h>
#include <stdlib.h>
const int n=5;
int dist=0;
int km(int mat[n][n],int* rotta,int lun){
for(int i=0;i<lun;i++) {
     if (mat[rotta[i]][rotta[i+1]]==-1) return dist=-1;
     else{dist+=mat[rotta[i]][rotta[i+1]];
     }
          return dist;
         }
}
int main(){
int matrice[n][n]={{0,3,4,5,1},
                  {3,0,2,-1,4},
                  {4,-1,0,2,2},
                   {5,1,2,0,1},
                  {1,4,2,1,0}};
int tappe=4;
int rotta=(1,3,2,4);
int k=km(matrice,rotta,tappe);
if (k==-1) cout<<"il percorso non esiste\n";
cout<<k<<"\n";
}

 int rotta=(1,3,2,4);
forse voleva essere:
int rotta[] = { 1, 2, 3, 4 }
-- 
Posted from 
flopiano.mm.eutelsat.org
 [194.214.173.28] 
via Mailgate.ORG Server - 
http://www.Mailgate.ORG

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

salve.
le istruzioni
int (*a)[10];
a=new int [20][10];
sono equivalenti a
int** a;
a=new int * [10];
for (i=0;i<10;i++) a[i]=new int [20];
??
friol

 for (i=0;i<10;i++) a[i]=new int [20];
No, perche` la prima forma alloca un solo blocco (che andra`
liberato con una sola delete[]) mentre la seconda ne alloca
11 (che andranno liberati con undici delete[]).  Quindi, la
prima forma e` assai piu` efficiente, e consuma meno
memoria: 200*sizeof(int) (piu` l'overhead di 1 blocco in
allocazione dinamica) invece di 10*sizeof(int*)+200*
sizeof(int) (piu` gli overhead di 11 blocchi in allocazione
dinamica).
Alex

 for (i=0;i<10;i++) a[i]=new int [20];
No, perché a, nei due casi, è un tipo diverso. Ad esempio, incrementando
a, nel primo caso quest'ultimo, essendo un puntatore ad array di 10
interi, punterebbe al prossimo array di 10 interi, mentre nel secondo
caso, essendo un puntatore a puntatore ad interi, punterebbe al prossimo
puntatore ad interi. Inoltre, un puntatore a puntatore è più versatile
in quanto può gestire, nella seconda dimensione, array a lunghezza
diversa. Nella pratica può darsi che molte delle normali operazioni
risultino equivalenti ma è meglio utilizzare il tipo giusto al momento
giusto, non ti sembra?
EMG
Newsgroup: it.comp.lang.c++
Titolo: [fgets e cin] Domanda probabilmente banale...

Salve a tutti.
Una domanda riferita alla seguente routine:
while (ancora == 's')
	{	ancora = 'n';
		cout << "Nome oggetto:\t\t";
		fgets(arch[record].nome, 20, stdin);
		cout << "Luogo ritrovamento:\t";
		fgets(arch[record].luogo, 20, stdin);
		cout << "Anno ritrovamento:\t";
		cin >> arch[record].anno;
		cout << "Altro oggetto? [s/N] ";
		cin >> ancora; 
		record++;	
	}
Perchè alla fine della prima esecuzione del ciclo inserisce in
automatico una stringa vuota all'interno di arch[record].nome?
Chiaramente arch[record].anno è di tipo intero, per cui ho messo cin...
Grazie per le eventuali risposte e scusate la banalità della domanda!
:o)
dorje
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

 Chiaramente arch[record].anno è di tipo intero, per cui ho messo cin...
Penso che derivi dal fatto che dopo la lettura di ancora, rimane un CR nello
std::cin e che quindi, la lettura della stringa risulti, appunto, vuota,
come se si premesse invio.
Va tutto a posto dando un std::cin.ignore() per dire al C++ di scartare il
CR.
Spero di esserti stato d'aiuto.
Mi permetto di riscrivere il tuo listato in una forma che mi piace di più.
Ciao.
#include <iostream>
#include <string>
#include <vector>
struct myRecord
{
        std::string nome;
        std::string luogo;
        int anno;
};
int main(int argc, char* argv[])
{
        std::vector<myRecord> arch;
        char ancora='s';
        while (ancora=='s')
        {
                myRecord P;
                std::cout << "Nome  : ";
                std::getline(std::cin,P.nome);
                std::cout << "Luogo : ";
                std::getline(std::cin,P.luogo);
                std::cout << "Anno  : ";
                std::cin >> P.anno;
                std::cout << "ancora (s/n) ? ";
                std::cin >> ancora;
                std::cin.ignore();
                arch.push_back(P);
        }
        std::cout << "Inseriti " << arch.size() << " elementi.\n";
        for (std::vector<myRecord>::iterator
it=arch.begin();it!=arch.end();++it)
                std::cout << "Nome  : " << (*it).nome << std::endl
                << "Luogo : " << (*it).luogo << std::endl
                << "Anno  : " << (*it).anno << std::endl;
        std::string tmp;
        std::getline(std::cin,tmp);
        return 0;
}

Newsgroup: it.comp.lang.c++
Titolo: R: +++GET YOUR FREE PENTIUM CELERON-300+++____________________________________________________________________________________________werop5 pwregjogjwiorue wieuhtiouwnhl er

 wrote in 
  message 
385AD98F...@yahoo.com
...
===================================================== 
  
Submit a simple form to order your Celeron-300MHz PC 
  
               
  FOR ONLY $9.99 
***************************************************** 
  
CLICK HERE: 
http://63.71.76.38/reg_form_eng/index.htm


***************************************************** 
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  







Scusate!!! 


 


Non avevo tolto lo spam  del pirlone!!! 


 


Ale.
Newsgroup: it.comp.lang.c++
Titolo: qualcuno mi da una mano?

devo aggiungere ad una classe template di Lista kueste cose
costruttore per copia 
operatore di assegnamento di liste 
operatore += che appende alla lista tutti gli elementi di un'altra
lista 
operatore += che appende alla lista un nuovo elemento 
operatore == 
operatore != 
senza usare le STL....qualcuno mi può aiutare o ne ha una simile?
Saluti e grazie anticipatamente

Saluti e grazie anticipatamente
Sono fiducioso che con un po' di buona volonta' ti puoi
ancora salvare...
Abbandona il lato oscuro...
Andrea
--
Andrea Griffini, Programmer
http://www.netservers.com/~agriff

Newsgroup: it.comp.lang.c++
Titolo: 2 problemi di I/O su file

Salve
Ho due problemi che qualcuno potrebbe autarmi a risolvere:
1) Esiste  funzione C++  , possibilmente, ANSI che mi restituisca la
dimensione in byte di un file. Io ho trovato solo funzioni C:
filelength() e fstat().
2) Qual'e' il modo migliore per ripristinare la posizione corrente di
LETTURA all'inizio di un file di input binary.
Io ho provato con seekg() ma non funziona, di seguito allego il
codice:
 ifstream file("Prova",ios::in|ios::binary);
 if(!file) exit(-1);
 // qui eseguo varie operazioni di lettura che spostano la posizione
 //corrente
 //A questo punto tento di riportare il puntatore di lettuara 
 //all'inizio
 file.seekg(0,ios::beg);
Probabilmente si tratta di una sciocchezza ma non riesco ad
individuarla.
Ringrazio in anticipo per eventuali suggerimenti

 file.seekg(0,ios::beg);
Ecco un piccolo programma completo che esemplifica questo uso:
#include <iostream>
#include <fstream>
using namespace std;
int main()
{
    ofstream fout("afile.dat", ios::binary);
    if(!fout) {
        cerr << "Cannot open afile.dat for writing!" << endl;
        return 1;
    }
    unsigned long datum = 0x12345678;
    fout.write((const char*)&datum, sizeof(datum));
    fout.close();
    ifstream fin("afile.dat", ios::binary);
    if(!fin) {
        cerr << "Cannot open afile.dat for reading!" << endl;
        return 1;
    }
    unsigned long da1=0, da2=0;
    fin.read((char*)&da1, sizeof(da1));
    fin.seekg(0, ios::beg);
    fin.read((char*)&da2, sizeof(da2));
    cout << "Read: " << hex;
    cout << da1 << " " << da2 << endl;
    return 0;
}
Questo programma legge lo stesso valore (12345678 in esadecimale)
sia in da1 sia in da2, mostrando cosi` di avere correttamente "riavvolto"
lo stream in lettura con la seekg(), come desiderato.  Testato su: MS
Visual C++ 5.0 SP3, con i fix per gli header di libreria standard C++
disponibili su 
www.dinkumware.com
.
Se questo programma non funziona correttamente sul tuo compilatore,
penso che tu possa concludere senza tema di smentite di avere trovato
un bug sul compilatore in questione (e/o, naturalmente, sulle librerie
standard a suo corredo).
Alex

 LETTURA all'inizio di un file di input binary.
ifstream::tellg();
Ciao
Alexei
Newsgroup: it.comp.lang.c++
Titolo: Come si fa in Turbo C++ ...

... a editare le parentesi graffe ( { } )?
Ho un portatile Compaq. Ho comprato il libro "A scuola di C++ for
Dummies", che contiene  Turbo C++ Lite e non riesco in nessun modo a
digitare ste benedette { ...
Ho provato con la sequenza di tasti indicata dalla mappa caratteri di
Win 98 (MAIUSC+CTRL+ALT+è) e a copiare (copia/incolla) dalla mappa
caratteri, ma niente da fare !
So che e' una domanda scemissima, degna del novizio piu' spastico, ma
non so proprio come fare.
Aiutatemi per favore !
Grazie.
-- 
Per rispondere in e-mail togli NonRompeteConLoSpam
OUK

 caratteri, ma niente da fare !
Prova Alt + MAIUSC + [  (...o ])
altrimenti con:
Alt(sinistro, su alcuni PC)  + (in sequenza) "1 2 3" per la {
Alt + (in sequenza) "1 2 5" per la }
Gerolamo

 OUK
prova con Alt + 00123(usa i tasti con i numeri sulla destra), oppure cambia
impostazione di  tastiera.

 impostazione di  tastiera.
Grazie. Ho provato tutte e due le cose ma non c'e' verso!
Ho provato anche sul comp di un amico (PIII, postazione fissa con
tastiera estesa) e non ha funzionato lo stesso. Credo che si tratti di
un *problema* della mia versione Turbo C++ Lite ...
Grazie lo stesso.


 Gerolamo
Ti ringrazio per i suggerimenti. Purtroppo non hanno funzionato nessuno
dei due !
Ho anche provato a installare Turbo C++ Lite su una postazione fissa
(con tastiera estesa), ma non funziona neanche li, neppure utilizzando
il tastierino numerico ...
Comincio a pensare che la versione che ho io abbia un *grosso problema*
Grazie comunque.



Ho anch'io la stessa versione e funziona bene con ALT+123/125. Però ti
consiglio ti scaricarti il DJGPP o il Borland 5.5 visto che la
versione che hai è vecchissima (tanto per fare un esempio non supporta
i template...)
Antonio Cuni
ICQ: 82732649

 ICQ: 82732649
Grazie del consiglio. Sapresti per caso indicarmi un indirizzo da dove
scaricare DJGPP ?

Newsgroup: it.comp.lang.c++
Titolo: doppio array bidimensionale

Devo rappresentare due fette(2 matrici) bidimensionali una sopra
l'altra.
Scusate la domanda banale ma volevo sapere se come sto facendo adesso
e' corretto.
bool * signedSlice[1];
void Init(VolumeType &volume)
{
      for(int i = 0; i < 2; i++) signedSlice[i] = new
bool[_slice_dimension];
};
Indicizzo con signedSlice[ i ][ j ].....  0<i<=1 ,
0<j<=_slice_dimension-1
Il mio problema e' il seguente durante il loop, l'unica funzione che
modifica l'array               signedSlice e' la
CalculateSignSlice(volume,j) e la  InitSlice();
La extractor.ProcessCell(p1, p2) all'interno del suo codice
non modifica signedSlice, ma mettendomi a
stampare l'array signedSlice da dentro la funzione V() chiamata piu'
volte all'interno della processCell l'array misteriosamente cambia
durante la stessa iterazione j=0.Ma com'e' possibile?
Di seguito riporto il loop.
/**************************************** loop
**********************************************/
 Init(volume);
 InitSlice();
 Begin();
 extractor.Initialize();
 for (int j=_bbox.min.Y(); j<_bbox.max.Y(); j+=1)  // height
 {
       if((j%10)==0)
       InitSlice();
       CalculateSignSlice(volume,j);
       for (int i=_bbox.min.X(); i<=_bbox.max.X()-1; i+=1) // width
       {
           for (int k=_bbox.min.Z(); k<=_bbox.max.Z()-1; k+=1) // deep
          {
	p1.X()=i;  p1.Y()=j; p1.Z()=k;
	p2.X()=i+1; p2.Y()=j+1;	p2.Z()=k+1;
	extractor.ProcessCell(p1, p2);
          }
       }
      NextSlice();
}

 Ma com'e' possibile?
Vedi sopra ;).
--
Marco 

 Vedi sopra ;).
Me ne sono accorto adesso che idiota e dire che c'ho perso un sacco di
tempo a 
pensare chissa' cosa ;)
Newsgroup: it.comp.lang.c++
Titolo: AIUTOOOOO Per favore

Salve a tutti,
sono una ragazza alle prime armi con C questo linguaggio un pò
difficilotto. non riesco a capire come creare un protocollo di comunicazione
basato su UDP che realizzi il "Tunneling" di connessionni tra due gruppi di
Hosts. Gli Host, Prefissati, sono suddivisi in due gruppi distinti. Per ogni
gruppo esiste un host master che mette in comunicazione gli host del gruppo
con quelli dell'altro gruppo, passando attraverso il relativo master.
ad esempio:
Host A <--------> Master A<------Tunneling----> Master B <---------> Host B
Le connessioni hanno tutte un tasso di errore del 70%
In poche parole devo creare un piccolo applicativo scritto in C per linux
per lo scambio di n
messaggi o un file di testo. Chiedo aiuto per risolvere questo rompicapo che
da 2 mesi e mezzo mi tortura.
Grazie di Tutto
Giusi Marchese


? ? ? ? ?
vedi risposte al post precedente
Newsgroup: it.comp.lang.c++
Titolo: Eseguire un file ??

Ciao a tutti, qualcuno mi sa dire qual'è  l'istruzione capace di eseguire un
file.exe in C++ ??
Qualcuno mi ha detto EXECUTE, ma non ho trovato niente in merito sul mio
libro C++, Booo !!?
Ps. Il prog. dovrà girare in dos, ma credo che questo non sia importante.
Ciao e grazie
Nicola.

file.exe in C++ ??
system("file.exe");
Luc.


#include <cstdlib>
...
system("nome file")
Alberto Griggio

 file.exe in C++ ??
system( "nomeexe" );
EMG

 wrote in message 8u4rpb$j85$1...@nslave2.tin.it...


Guarda le funzioni ecex e spawn nel file <process.h> (le trovi su
qualsiasi help del C), ti permettono di lanciare programmi e passargli
parametri...

-- 
Ciao, gengisdave
http://digilander.iol.it/gengisdave

GUARDA IO TI CONSIGLIO QUESTA PROCEDURA.
//includes
/*se vuoi questo no*/ #include <windows.h>
#include <shellapi.h>
//ora il prototipo della funzione
#ifndef
HINSTANCE ShellExecute(HWND hwnd,
                                            // anche NULL
                                            LPCTSTR lpVerb,
                                            //qui "open"
                                            LPCTSTR lpFile,
                                            //es. "C:/File.exe"
                                            LPCTSTR lpParameters,
                                            //qui NULL
                                            LPCTSTR lpDirectory,
                                            //anche NULL
                                            INT nShowCmd
                                            //SW_SHOWNORMAL
                                            );
PER MAGGIORI INFORMAZIONI CONSULTARE IL SITO DI MSDN NELLA SEZIONE LIBRARY
SOTTO LA VOCE SHELL BASIC O RICERCANDO ShellExecute() O ShellExecuteEx()

ho dimenticato alla fine
#endif
SALUTI DAL MAGO DELL'INFORMATICA


Se caschi in queste cose mi sa che tanto mago... :-)
Volevo poi segnalarti che sui newsgroup e' considerato maleducato
scrivere in maiuscolo, perche' corrisponde a gridare.
Ciao,
Nicola

Mi spiace ma spero che voi appreziate un genio come me!
Scherzo, naturalmente, comunque spero che tu abbia potuto sfruttare il mio
consiglio. Forse č poco portabile, ma per l'ambiente windows č il migliore,
il piů rapido e il piů professiionale.
Scusa per i caratteri maiuscoli che ti hanno infastidito.
Cordiali saluti.

Non sono lo stesso Nicola che ha inviato la richiesta originale. Tra
l'altro questo newsgroup e' dedicato al C++ standard e non a soluzioni
specifiche di piattaforme particolari. Per Windows e simili c'e'
it.comp.programmare.win32
Ciao,
Nicola

Newsgroup: it.comp.lang.c++
Titolo: Inizializzazione variabili

Ciao a tutti,
qualcuno mi puo ricordare se da standard le variabili d'istanza, di
classe, e gloabli vegono inizializzate a zero di default o no ?
Grazie,
Mtc


Le variabili statiche vengono sempre inizializzate (a zero se non 
specificato altrimenti). Quelle di classe no,  lo deve fare il costruttore.
E.
Newsgroup: it.comp.lang.c++
Titolo: C++ e Objective C

Qualcuno sa spiegarmi la differenza tra i due linguaggi?
Quali sono le feature incluse nella seconda variante del nostro amato
linguaggio ad oggetti?
-- 
Gargamella alias Massimo Lauria

linguaggio ad oggetti?
"Objective-C e` un linguaggio ibrido che contiene tutto
il linguaggio C piu` varie parti di Smalltalk" (B. Cox, "Object
Oriented Programming: An Evolutionary Approach").  E`
sempre possibile bypassare il meccanismo ad oggetti e
accedere direttamente all'informazione privata di un
oggetto.
I riferimenti-ad-oggetto usano il tipo "id", che puo` fare
riferimento a qualsiasi oggetto; per accedere ai servizi
dell'oggetto si scrive una "espressione di messaggio",
che e` un paio di quadre attorno a: oggetto, messaggio,
argomenti.  Ad esempio, una "fabbrica" e` un oggetto che
conosce il messaggio new (il nome della "fabbrica"
inizia sempre con una maiuscola; quello di tutti gli
altri oggetti, sempre con una minuscola, per convenzione):
    id aSet = [Set new];
genera un nuovo Set e registra un riferimento ad esso
nella variabile aSet. Gli argomenti sono passati per
"keyword", ad esempio:
    [aSet addElement:2]
chiama il metodo ("selettore") "addElement:", che
prende un argomento (come si capisce dal fatto che
ha un carattere di due-punti);
    [aSet removeFrom:0 to:5]
chiama il selettore "removeFrom:to:" con i due
argomenti 0 e 5.
Le classi sono descritte in appositi "class description
files", che forniscono il nome, la superclasse (Cox
dice "l'eredita` non e` necessaria in un linguaggio ad
oggetti, ma e` certo molto desiderabile" -- pero` e`
una eredita` singola, almeno nell'Objective C che
conoscevo io), e le variabili e i metodi d'istanza e
di fabbrica (o meglio, le aggiunte rispetto a quelli
della superclasse); la sintassi per definire i metodi
e` "grosso modo" quella delle funzioni C, salvo per
la "testata" (sino all'aperta-graffa esclusa) che usa
una sintassi particolare per definire il selettore, tipo:
- (int)nome:(unsigned)argomento {
    /* corpo della funzione */
    return 2;
}
per quello che in C++ sarebbe
int Classe::nome(unsigned argomento) {
    // corpo della funzione
    return 2;
}
Il '-' iniziale definisce un metodo d'istanza; per
un metodo di fabbrica, useremmo '+'.
C'e` dell'altro, naturalmente, soprattutto la ricca
libreria ("Software IC's"), ma questo e` il grosso.
Alex

linguaggio ad oggetti?
Objective-c is directly related to Smalltalk ... For example, the producer
package from Brad Cox, available at
http://sunsite.unc.edu/pub/Linux/devel/lang/objc/nproducer-1.1.2.tar.gz
 is an
example of an Objective-C package.  It's for translating Smalltalk code to C,
and Objective-C is exactly some language support for doing this.
-----------== Posted via Deja News, The Discussion Network ==----------
http://www.dejanews.com/
       Search, Read, Discuss, or Start Your Own
Newsgroup: it.comp.lang.c++
Titolo: Tipo di dato astratto SET

Qualcuno di voi ha gia' implementato in C++ il tipo di dato astratto
SET (insieme matematico) con le operazioni di Inserimento,
Eliminazione, Unione, Intersezione e Differenza?
my E-mail: 
poggir...@hotmail.com
Grazie.
______________________________________________________
Get Your Private, Free Email at 
http://www.hotmail.com
--
Posted from [131.175.12.2] by way of 
law-f151.hotmail.com
 [209.185.131.214]
via Mailgate.ORG Server - 
http://www.mailgate.org

Eliminazione, Unione, Intersezione e Differenza?
Ne trovi un'implementazione pronta in STL.

 Ne trovi un'implementazione pronta in STL.
Ancora meglio, la trovi nella libreria standard del C++.
EMG

Quella della VCL server per poter implementare il tipo SET nativo di Delphi
e viene usato prevalentemente per aggiungere o togliere opzioni che
descrivono il comportamento di alcune classi come la TApplication->MsgBox,
ecc.

 Ancora meglio, la trovi nella libreria standard del C++.
STL = STandard Library = libreria standard
almeno credo, correggetemi se sbaglio
TobiX


STL = Standard Template Library
-- 
Roberto Gerola
Email: 
robert...@penguinpowered.com
WWW: 
http://www.penguinpowered.com/~The_Cpp_Compass

 STL = Standard Template Library
O STepanov e L... azz, ho dimenticato il nome dell'altro autore della
STL... :-(
EMG

STL... :-(
Autrice : Meng Lee
Ma mancherebbe Dave Musser.
Ma e` solo un gioco di parole fatto in un intervista
al Dr. Dobb's Journal, era uno scherzo.


Newsgroup: it.comp.lang.c++
Titolo: <no subject>

Salve Ragazzi,
Se possibile e se non reco rompimenti vari, vorrei
sapere, visto che sono no' alle prime armi,ma alle
primissime armi,come posso fare per dare
quest'istruzione a un programmino in C++,
Allora
Immetti 1° numero
Immetti 2° numero
Operazione:
Num 1° + Num 2° = risultato
Se risultato maggiore di 90, bisogna fare quanto
segue:
Risultato - 90
Come si fa'?
Grazie mille
______________________________________________________________________
Do You Yahoo!?
Il tuo indirizzo gratis e per sempre @
yahoo.it
 su 
http://mail.yahoo.it
-- 
Posted from 
web1105.mail.yahoo.com
 [128.11.23.125] 
via Mailgate.ORG Server - 
http://www.Mailgate.ORG

Grazie mille
Dunque... [ridotto all'osso]:
...
using namespace std;
int a,b,c;
...
cin>>a>>b;
if( (c=a+b)>90 ) c -= 90;
...
Questa è la traduzione C++ delle istruzioni che hai indicato.
Domenico Barra

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

Qualcuno mi può dare un programma che posso usare all'esame di informatica e
soprattutto il programma c++
aiutatemi alla svelta.

aiutatemi alla svelta.
Perche` non ci pensavi prima a studiare? Tra l'altro l'uso
dell'imperativo senza un minimo di "per favore" rende la
richiesta ancora piu` irritante!
Paolo
-----------------------------------------------------------------
  Paolo Marotta
  Computer Science, University of Pisa
  home:   
http://www.cli.di.unipi.it/~marotta
-----------------------------------------------------------------
Newsgroup: it.comp.lang.c++
Titolo: chiamate ai Costruttori x inizializzare le istanze...

Ciao a tutti!
tempo fa ho trovato dei sorgenti su internet dove appariva una cosa del
genere :
CClass::CClass( int a, int b, int c){
    //...inizializzazione membri
}
CClass::CClass( char *key ){
    CClass(0,0,0); //<<<<<<<<<<< !!!
    //...inizializzazione membri
}
la mia domanda č semplice e forse anche da ignorante : la chiamata a
CClass(int,int,int) č standard??? č possibile chiamare un altro costruttore
dichiarato nella stessa classe x fargli inizializzare l' istanza appena
costruita?
Ai sorgenti era allegata una release binaria, quindi credo che almeno un
compilatore C++ abbia compilato i sorgenti senza dare problemi e per di piů
nessun errore si verifica a runtime...
grazie, ciao

 classe x fargli inizializzare l' istanza appena costruita?
No.
        Mauro
Newsgroup: it.comp.lang.c++
Titolo: Esisterà un BCB7++???

Non ho capito nulla della politica Borland. Secondo voi esisterà un
BCB7++? Insomma la continuità in una piattaforma è una cosa importante
e sinceramente non ho capito se BuilderX è il successore di
BCB6++.....qualcuno saprebbe chiarirmi le idee con certezze?


wrote:

Quando si tratta di prodotti chiusi in mano ad un singolo
proprietario non importa quanto sia diffusi... la loro morte
puo' essere rapida e inattesa. Un linguaggio come il C++
o una libreria portabile sono cose invece molto diverse ...
Io ho promesso a me stesso che mai piu' mi faro' prendere in
giro come e' successo con il Borland Pascal With Objects che
tanto mi piaceva. Nemmeno una fix *ufficiale* per i processori
veloci che inchiodavano i programmi alla partenza hanno
fatto uscire e ci hanno invece dovuto pensare gli utenti...
che tristezza.
Molla il BCB e abbraccia il C++ ... vuoi davvero che il
futuro del valore di cio' che hai (i tuoi sorgenti) venga
deciso in base alla luna di un direttore di marketing ?
Andrea

 Andrea
Confermo, sono un BCBuilder pentito!
Ho usato e mi capita ancora di manutenere S/W sviluppato con il Builder.
Il Builder č un gran bel prodotto, perň a mio giudizio il limite intrinsico
delle tecnologie propietarie č in contrasto con i miei obiettivi di
sviluppatore. Mi risulta difficile progettare sapendo che un bel giorno
parlare una lingua che nessuno condivide piů.
Cosě ho sposato il C++ senza VCL o CLX, e mi sono reso conto che esistono
ottime alternative (a livello di framework per GUI) dal futuro meno incerto.
La mia ovviamente non č una critica al C++ Builder, che per altro uso ancora
abbondantemente (anche perché č un ottimo compilatore C++ e ha un IDE
fantastica, editor e debugger delle meraviglie): semplicemente compilo senza
l'uso di framework propietari, e i programmi che riesco a produrre sono
realmente portabili e si compilano con tantissimi compilatori.
Ciao.

 ottime alternative (a livello di framework per GUI) dal futuro meno
incerto.
Scusa l'intromissione, ma sapresti consigliarmi qualcuno di questi framework
per GUI di cui parli.
Grazie,
Marco

deciso in base alla luna di un direttore di marketing ?
Si ma non ho capito se BCB 6 è l'ultima versione in favore di X
Builder.....sapresti dirmi dove trovare risposte a questa domanda?

...

Se non trovi niente sul sito o sui newsgroup della Borland e'
difficile che tu possa trovare altrove, no?
Ciao,
Nicola

Nicola
Newsgroup: it.comp.lang.c++
Titolo: strstream o bradipo?

 
Magari non ha di fatto alcun effetto visibile, però qui mi sembra ci sia
un errore. Che cosa ti garantisce che inBuff sia null-terminated?
operator<<(const char *s) richiede che il buffer sia terminato con un
null, in quanto presumibilmente userà strelen(s) per determinarne la
lunghezza. Innanzitutto quindi userei write() anziche operator<<().
   memStream.write( inBuff, cin.gcount() );
Fare test comparativi con codice che può avere un comportamento
indefinito, non è una buona idea.
Max

 riportato sotto, per leggere un file di testo di cica 450K, impiega:
Provato con strstream.h, ha impiegato 4.8 secondi a leggere 2 Mb di file
di testo sul mio Pentium 120. Compilato con il DJGPP. Comunque strstream
è obsoleto. Dovresti utilizzare stringstream.
EMG

 EMG
   Con mingv ci si impiega meno di 2s. Il problema e' che io sono legato al
   Visual C++ V5.0 (non per scelta ma per costrizione) e l'OODB a cui mi
    interfaccio si incavola se tento di usare #include <string>
    Comunque grazie dell'attenzione.
   Ciao Angelo.


   Purtroppo il dito e' stato piu' veloce del cervello. Avevo preparato il
post in anticipo,
   ho fatto un ultimo controllo, ho corretto l'errore e ho inviato l'esempio
errato.
   Posso confermarti che il problema persiste anche nella versione corretta.
   Grazie e Ciao Angelo.

Newsgroup: it.comp.lang.c++
Titolo: Borland C++ Builder. Disabilitare il debugger

Salve.
Ho installato il Borland C++ Builder 6.0, ma adesso ogni volta che mi va in
crash un'applicazione mi viene riproposta l'analisi con il Debugger del
Borland del processo crashato.
Inoltre il debugger non mi pemette di aprire il JCreator che dice che non
può funzionare con un altro debugger di sistema in esecuzione.
Non sono molto pratico del programma della Borland e quindi volevo
chiedervi una cosa sola: 
Semplicemente, come disabilitare il pesante debugger del Borland C++
Builder 6.0
Grazie mille :-)
-- 
Questa signature non riuscirebbe mai a descrivere 
la persona che sono. Quindi è inutile che vi scriva 
qualcosa....

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: gia' che ci sono...

Vi (Ti) chiedo anora una cosa.....
Come faccio ad aprire una nuova finestra in maniera non modale (ovvero non
con la .DoModal()     )???
Come faccio a cambiare le proprieta' di un textfield (trasformarlo in uno di
tipo password e viceversa) durante l'esecuzione?
Grazie 20000 (x l'attenzione e per il Tuo tempo :)
Ciao
-=STEO=-

 tipo password e viceversa) durante l'esecuzione?
La maggior parte dei bit di stile di un controllo di tipo EDIT ha
effetto solo quando quella finestra viene creata.  Per fare un
cambiamento di bit di stile che abbia effetto immediato, dunque,
bisogna contestualmente distruggere e ricreare la finestra.  Ho
un esempio di questo importante "idioma" Windows (espresso in
API) sul mio tutorial a 
http://aleax.supereva.it
, ma un idioma
analogo funzionera` anche con MFC (con attenzione a tenere
aggiornate le HWND di varie ed eventuali CWnd che incorporino
quel controllo, naturalmente!).
Alternativamente, per varie cose, puo` essere piu` comodo
mettere e togliere al volo un subclassing, anche se questo non
sfrutta pienamente la funzionalita` gia` presente nel controllo
che stai subclassando.  Tuttavia, per lo specifico problema da
te posto, penso che la soluzione del distruggi-e-ricrea sia la
migliore.
Alex
Newsgroup: it.comp.lang.c++
Titolo: errore nella creazione di un progetto

in windows 2000 quando creo un nuovo progetto in vc++6  usando AppWizard
ricevo sistematicamente il seguente errore:
msdev.exe errore di applicazione l'istruzione a "0x7637fc3d"ha fatto
riferimento alla memoria a "0x00000004".la memoria non poteva essere "read".
Qualcuno sà dirmi perchè?????
grazie
nicola

 ha scritto nel messaggio
news:SyvD8.49003$5k4.1...@twister2.libero.it...

chiedi su it.comp.programmare.win32, forse li qualcuno sa risponderti

Newsgroup: it.comp.lang.c++
Titolo: Coseno e suo inverso

Ciao
scusate la domanda che potrebbe essere anche sbagliata...
Vorrei calcolare l'angolo di un triangolo rettangolo (uno dei tre a caso)
usando per esempio il teorema di  Carnot, se non ho sbagliato teorema.
Cioč:
alpha = arccos((quadrato di b + quadrato di c - quadrato di a)/(2bc)) 
dove b e c sono gli angoli tra cui č compreso l'angolo e a č il lato opposto.
in c++, devo usare la funzione acos o no? 
Vorrei avere il risultato in GRADI
Grazie
Ciao
F

Vorrei avere il risultato in GRADI
#define M_RTOD 57.29578 // convert radians to degrees
Angolo = acos ( (b*b + a*a - c*c) / (2*b*a) ) * M_RTOD;

Angolo = acos ( (b*b + a*a - c*c) / (2*b*a) ) * M_RTOD;
Grazie!

 Vorrei avere il risultato in GRADI
Se stai lavorando con un triangolo rettangolo, il mio consiglio e' di usare 
atan2(cateto1, cateto2): e' piu' stabile di acos, sopratutto nei casi 
degeneri (nel tuo caso i cateti sono b e c, ma se uno dei due e' tende a 
zero il denominatore rischia di portarti un po' a spasso)
--*PaN!*

Newsgroup: it.comp.lang.c++
Titolo: domanda su RTTI

salve,
non ho mai usato RTTI finora, e vorrei iniziare. quel che vorrei sapere
è:
- il compilatore gcc funge (nel senso che è stabile e genera codice
corretto, oppure è bacato)? (io uso 2.95.2)
- è possibile mischiare in un eseguibile file .o compilati un po' con
rtti e un po' no (cioè con -fno-rtti)?
grazie, ciao, Touch

rtti e un po' no (cioè con -fno-rtti)?
Se elimini l'RTTI non hai più la possibilità di informazioni dinamiche sul
tipo, tutto qui. Poi, dipende da ciò che ci devi fare: se hai un programma
che usa l'RTTI e lo compili eliminando il supporto RTTI, allora vuoi farti
del male (a parte il fatto che non so nemmeno se te lo compila...)
Doomenico Barra
Newsgroup: it.comp.lang.c++
Titolo: Avi file

Ciao a tutti.
Io uso l'editor e il compilatore del Visual C++ 6.0, con S.P. 5.0 
e Platoform SDK aggiornato ad Agosto 2002.
Volevo sapere se per caso conoscete qualche funzione per fare dividere
un file AVI non conpresso in 2 stream divisi : uno per il video e uno
per l'audio.
per favore, aiutatemi.
Grazie, Leonardo Bucarelli
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

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


 aspetti specifici di particolari implementazioni. 
Ciao,
scusa del disturbo. Posterò nei gruppi che mi hai indicato.
Grazie ancora, Leonardo


per favore, aiutatemi.
Non sarò di molto aiuto, ma cmq dai un'occhiata qui
http://www.doom9.org/sources.htm
ci sono i sorgenti di un casino di famosi programmi di editing video,
probabilmente troverai qualche spunto che ti potrà indirizzare.
-- 
_____________________
RedPelle
--==--==--==--==--==--==--
 
redp...@email.it
 
www.redpelle.cjb.net
--==--==--==--==--==--==--

Newsgroup: it.comp.lang.c++
Titolo: Forse è difficile? Handle & Process!!!

Ragazzi...
AIUTO!!
dovrei lanciare un applicativo (magari tramite ShellExecute), è praticamente
un agente animato a tutto schermo ed
inserirlo in una finestra, che creo magari con CreateWindow...
e' una cosa possibile...
vorrei associare l'HANDLE della finestra creata a quel processo lanciato con
SchellExecute...
AIUTOOOOOOOOOOOOOOOOOO!

 e' una cosa possibile...
qui no.
su it.comp.programmare.win32 
forse.
-- 
Debugging is twice as hard as writing the code in the first place.
Therefore, if you write the code as cleverly as possible, you are,
by definition, not smart enough to debug it.
    - Brian W. Kernighan
Newsgroup: it.comp.lang.c++
Titolo: compilatore c++

Dove posso trovare il manuale di riferimento del compilatore c++ .
Ho istallato da poco il c++ della Borleand.grazie.

Ho istallato da poco il c++ della Borleand.grazie.
Il manuale di riferimento del compilatore c++?
Cerca negli help files...
--
Diego "DGP85" Pettenņ
daps...@nightmail.com

No calma io cerco un "compilatore" semplice per iniziare


Newsgroup: it.comp.lang.c++
Titolo: Operazioni su file

Salve,
volevo sapere solo queste semplici cose:
1) Come si fa ad aprire un file in modalità append?
2) Come si fa ad eliminarlo?
3)se scrivo:
ofstream outfile("file", 1) Quale modalità è?
ifstream infile("file", 3) Idem.
Quali sono le modalità assegnabili per le operazioni su file in lettura
e scrittura?
Grazie
Luigi
-- 
Posted from 
smtp2.libero.it
 [193.70.192.52] 
via Mailgate.ORG Server - 
http://www.Mailgate.ORG

 ha scritto nel messaggio
news:3AA27D20...@hotmail.com...

basta il seguente codice
char nomefile[30];
ifstream f1;
cout<<"Fill input: "; cin>>nomefile;
f1.open(nomefile, ios::app);
if(!f1){
    cout<<"Il file "<<nomefile<<" è inesistente";
    exit(1);
}
apri il file facendo anche un controllo se esiste
Newsgroup: it.comp.lang.c++
Titolo: albero delle #inclusioni

Salve,
avrei una domadina da fare, spero di essere abbastanza in topic ;-)
Sto lavorando ad un grosso progetto, composto da oltre 500 files tra
sorgenti .cpp e headers .h .
Mi sarebbe molto, molto utile avere una sorta di albero di inclusione,
cioe' dato il sorgente xx.cpp sapere in che ordine e quali sono gli
#include che vede.
Sapete consigliarmi qualche utility (anche commerciale eventualmente)
che possa analizzare i miei sorgenti e ricavare simili tabelle ?
Se su piattaforma Win32 meglio, ma al limite posso accedere anche a
piattforme Linux e FreeBSD.
Molte grazie!!
bye!
Alessandro de Manzano
Milano
dema...@playstos.com
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

 ha scritto nel messaggio
news:a5cc206b6630735bbf...@mygate.mailgate.org...


 simili tabelle ?
doxygen
-- 
 < 
http://www.reactos.com/
 >  Open source clone of Windows NT. Current
     Don't stand, REACT!      version 0.0.19. C, C++ and ASM developers
                              and beta testers are welcome!

Newsgroup: it.comp.lang.c++
Titolo: #ifndef

Vedo, scopiazzando qua e la, che all'inizio di ogni header file i
programmatori inseriscono questo codice:
esempio:
//========================================================================
//      tutapp.h:  Header file for tutorial V application
#ifndef TUTAPP_H                // Standard technique for avoiding
#define TUTAPP_H                // problems with multiple #includes
Se ho capito bene, quando il compilatore incontra queste linee, se non ha
ancora definito TUTAPP_H, lo definisce, ma questo significa che se il file,
per qualsiasi motivo, viene incluso di nuovo in un altra parte del sorgente,
il compilatore lo ignora? Insomma, quale problema dovrebbe evitare questa
tecnica? Ed è poi standard?
Ho letto (Schildt) che nelle intenzioni di Stroustrup c'era anche quella di
rendere superflue le direttive del preprocessore tramite funzioni inline e
altre cosette, vale anche per questa tecnica?
Illuminatemi.

funzioni inline e altre cosette, vale anche per questa tecnica?
Hai letto Schildt e questo e' un male... :D
Comunque anche io ho sentito che Stroustrup ha una particolare
avversione per il pre-processore (non che non gli si possa dare
a dire il vero torto anche se nella mia esperienza non capitano
spesso grane connesse al preprocessore e alla sua ignoranza).
Non credo che comunque le direttive di #include spariranno mai
perche' potrebbero sparire solo se:
 1) ci fosse un sistema di definizione unit integrato
    interfaccia/implementazione... un po' come in Delphi
 
 2) se non interessasse mantenere la compatibilita' con
    il passato C e C++
Anche #define e #ifdef sono importanti per poter scrivere codice
multipiattaforma quando si e' obbligati ad abbandonare il C++
"puro" (cosa che capita spesso).
HTH
Andrea
--
Andrea Griffini, Programmer
http://www.netservers.com/~agriff
Newsgroup: it.comp.lang.c++
Titolo: Libreria standard od STL ??

Ciao, ultimamente, leggendo i messaggi del gruppo, ho appreso che le STL
sono state parzialmente inglobate nella libreria standard del C++,
ho capito bene?
In un post di qualche giorno fa, Alex Martelli ha scritto che
sconsiglierebbe l'uso delle STL in progetti commerciali, visto che pare le
STL non siano standard e dipendono dall'implementazione del compilatore
usato... allora con le STL ci giochiamo e basta?! Oppure impariamo ad usarle
con il rischio che poi non vengano piu' supportate?
Insomma, non ci capisco piu' nulla :-(
e' possibile compilare un piccolo elenco del tipo:
fanno parte della libreria standard:
vector
map
algorithm
...
...
...
fanno parte delle STL
stack
queue
functional
...
...
...
chiaramente, un link ad un qualche articolo sull'argomento va benone.
P.S. ok che sono forse il primo a fare una domanda simile, ma non sarebbe il
caso di inserire l'elenco nelle FAQ giusto per completezza e per chiarire le
idee da subito??
Ciao, buon lavoro, Davide.
/ - / - | - \ - \
Davide Piras
pir...@engineer.com
\ - \ - | - / - /

 usato... allora con le STL ci giochiamo e basta?!
Non le usiamo e _al_posto_ utilizziamo la libreria standard.
EMG

La documentazione dell'STL, che trovi su 
www.sgi.com/Technology/STL
 ,
indica quali elementi sono parte dello standard e quali no. In
alternativa puoi leggere Matthew Austern, "Generic Programming and the
STL", che pure riporta tale indicazione.
Ciao,
Nicola
P.S. Pero' se sei ragionevolmente sicuro che le tue applicazioni non
cambieranno di piattaforma o compilatore, usa quello che il tuo
compilatore ti fornisce.

 idee da subito??
La distinzione fra STL e librerie standard dovrebbe essere nelle
FAQ poiche` causa di frequenti confusioni, se non di frequenti
domande.  L'elenco dettagliato di quello che NON e` nello standard
non mi sembra il caso (in quanto, in generale, le cose non nello
standard sono in numero ovviamente infinito; e in particolare, se
domani Stepanov rilascia una nuova STL che include altre tre cose
nuove e supplementari che facciamo, cambiamo le FAQ?  Perche`...?!).
Alex
Newsgroup: it.comp.lang.c++
Titolo: parametri per riferimento

Salve ho questo problema devo implementare un libreria che gestisce liste
lincate, tra le tante funzioni c'è un funzione che elimina il nodo in testa
e ritorna la nuova liste ed il valore del nodo, ma qualcosa non funzione il
parametro f viene assegnato nella funzione, ma nel main il suo valore è 0
elemeti della lista  :
          1  2  3  4  5  6
list delheadlist(list l, elemlist f)
  {
        f=l->item;
        ...
        ...
  }
elemeti della lista  :
           2  3  4  5  6
void main(void)
   {
         elemlist f;
         list root=initlist;
         ...
         ...
         root=delheadlist(root,&f);
   }
La funzione non restituisce il valore 1, ed in fase di compilazione mi da un
warnig "...with out cast"
Autatemi
Ciao ReDiCuori

void main(void)
Anche questo non va bene. 
main, in C come in C++, deve restituire un intero.
// --- inizio codice ---
/****************
 LIST.C
 07/12/2000
 Andrea Laforgia
*****************/
#include <stdio.h>
#include <stdlib.h>
typedef struct tag_nodo_lista {
               int valore ;
               struct tag_nodo_lista *prossimo ;
        } nodo_lista, *p_nodo_lista ;
void inserisci_in_lista( p_nodo_lista *ptesta, int valore )
{
     if ( *ptesta )
        inserisci_in_lista( &(*ptesta)->prossimo, valore ) ;
     else
     {
        *ptesta = malloc( sizeof( nodo_lista ) ) ;
        (*ptesta)->valore = valore ;
        (*ptesta)->prossimo = 0 ;
     }
}
void cancella_nodo_in_testa( p_nodo_lista *ptesta )
{
     if ( *ptesta )
     {
        p_nodo_lista temp = (*ptesta)->prossimo ;
        free( *ptesta ) ;
        *ptesta = temp ;
     }
}
void scrivi_lista( p_nodo_lista testa )
{
     if ( testa )
     {
        printf( "%d ", testa->valore ) ;
        scrivi_lista( testa->prossimo ) ;
     }
     else
       printf( "\n" ) ;
}
void dealloca_lista( p_nodo_lista testa )
{
     if ( testa )
     {
        dealloca_lista( testa->prossimo ) ;
        free( testa ) ;
     }
}
int main()
{
    p_nodo_lista testa_lista = 0 ;
    inserisci_in_lista( &testa_lista, 1 ) ;
    inserisci_in_lista( &testa_lista, 2 ) ;
    inserisci_in_lista( &testa_lista, 3 ) ;
    inserisci_in_lista( &testa_lista, 4 ) ;
    while ( testa_lista )
    {
          scrivi_lista( testa_lista ) ;
          cancella_nodo_in_testa( &testa_lista ) ;
    }
    return 0 ;
}
// --- fine codice ---
--
Andrea Laforgia (ICQ 87230455)
------------------------------ 
#exclude <windows.h>
Newsgroup: it.comp.lang.c++
Titolo: segfault con strlen

Salve a tutti!
Ho un problema con la funzione seguente:
void tabhash::ins (url *U) {
	uint hash = U->hashCode();
	char* url = U->giveUrl();
	char* chash = (char*)hash;
	char* Insert1="INSERT INTO sep_hashtable VALUES (";
	char* Insert2=",0,'";
	char* Insert3="');";
	char* Insert=new
char[strlen(Insert1)+strlen(chash)+strlen(Insert2)+strlen(url)+strlen(Insert3)];
	strcpy( Insert, Insert1);
	strcat( Insert, chash);
	strcat( Insert, Insert2);
	strcat( Insert, url);
	strcat( Insert, Insert3);
	if (mysql_query(&mysql,Insert)) {
			cerr << "Cannot insert into sep_hashtable : "
  	        	     << strerror(errno) << endl;
  	        	exit(1);
	}
}
In fase di esecuzione ricevo un segfault dalla strlen. A cosa e' dovuto?

 In fase di esecuzione ricevo un segfault dalla strlen. A cosa e' dovuto?
strlen(chash) puzza un pochino, o meglio, quello che puzza e'
 >    char* chash = (char*)hash;
In pratica prendi un intero e lo interpreti come un indirizzo in cui sta 
una stringa. Scommetto che quello che volevi fare era di prendere un 
numero e tradurlo in stringa! Quello si fa cosi:
char chash[100];
...
sprintf( chash, "%d", hash );
ciao
Giacomo

 In fase di esecuzione ricevo un segfault dalla strlen. A cosa e' dovuto?
Sostanzialmente al fatto che non usi gli strumenti che il C++ ti mette
a disposizione.
void tabhash::ins (url *U) {
  std::stringstream ss;
  ss << U->hashCode();
  std::string Insert = "INSERT INTO sep_hashtable VALUES (";
  Insert += ss.str();
  Insert += ",0,'";
  Insert += U->giveUrl();
  Insert += "');";
  if (mysql_query(&mysql,Insert.c_str())) {
    cerr << "Cannot insert into sep_hashtable : "
        << strerror(errno) << endl;
    exit(1);
  }
}
Ciao,
Nicola

   Insert += "');";
E perche non simplicemente:
    std::ostringstream ss ;
    ss << "INSERT INTO sep_hashtable VALUES ("
       << U->hashCode()
       << ",0,\'"
       << U->giveUrl()
       << "\');" ;
    if ( mysql_query( &mysql, ss.str() ) ) //  ...
--
James Kanze                                           GABI Software
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

     if ( mysql_query( &mysql, ss.str() ) ) //  ...
In effetti la stringa Insert non e' affatto necessaria. In origine
avevo cercato di scostarmi dal codice originale il meno possibile.
Ciao,
Nicola
Newsgroup: it.comp.lang.c++
Titolo: [?] ... è possibile ...

Perdonatemi sono un novizio del C\C++
Sto utilizzando il Builder 3 della Borland e mi chiedevo ...
E' possibile creare un Controllo (v. bottone) Run-time?
Se scrivo :
TButton *btn = new TButton(this);
... creo un puntatore ad un bottone ma soltanto in memoria giusto?
Grazie, Ettore

... creo un puntatore ad un bottone ma soltanto in memoria giusto?
No. Crei l'oggetto TButton allocando memoria per contenerlo e chiamando il
costruttore di defaul, inoltre assegni il possesso dell'oggetto alla Form
(perchè this si riferisce solitamente alla Form) che si occuperà di
distruggerlo.
    Devi settare gli altri parametri che normalmente utilizzi a design time
come Left,Top,Width,Caption,ecc ecc. inoltre ti conviene assegnare il
gestore dell'evento OnClick (il più comune). Per gestire il bottone devi
settare Visible, Enable ecc con i valori opportuni.
Inferno


Ho provato a settare le proprietà base (Left,Top,Width,Height,Visible,Caption,
.... ) ma non riesco a visualizzare un Ca##o .... why?
Ciao, ettore

In questo esempio premendo il bottone1 (creato a design time) viene creato
un nuovo bottone a run-time. Il modo migliore di gestire i controlli a
run-time (sopratutto i bottoni) è quello di creare una TList di bottoni e
aggiungere un nuovo bottone ogni volta che viene creato in modo da
semplificarne la gestione.
void __fastcall TForm1::BitBtn1Click(TObject *Sender)
{
    TButton *newbutton = new TButton(this);
    newbutton->Parent = Form1;
    newbutton->Caption = "A";
    newbutton->Width = 50;
}
Se ti occorre il codice per gestire una lista di bottoni creata a run time
te lo invio.

come Left,Top,Width,Caption [..]
Inoltre devi impostare btn->Parent = this altrimenti non vedrai mai il
pulsante sul form.
--
Byez
Stefano Tempesta
temp...@tin.it
http://tempesta.freeweb.org

Newsgroup: it.comp.lang.c++
Titolo: Consiglio su libro c++

Salve a tutti,
tempo fa comprai un buon libro sul C "Programmare in C Guida completa", 
acquisite e messe in pratica gli argomenti trattati in quel libro voglio 
passare al C++ chiedendo consiglio a voi su un buon libro, magari 
specificando se un libro richiede una preparazione in C o meno.
Grazie, ciao. 


In rete trovi Thinking C++ di Bruce Eckel in formato pdf e html (è free, 
cerca con google).
È un buon libro pieno di esempi ma forse un pò "logorroico".
Altrimenti il libro di Stroustrup è ottimo!
Ciao

 Altrimenti il libro di Stroustrup è ottimo!
Grazie della risposta.
Ho scaricato i due volumi in inglese di Thinking C++ di Bruce Eckel e il 
primo tradotto in italiano (preso dal sito 
http://pensareincpp.altervista.org/
), e lo devo ancora iniziare a leggere, 
ma l'altro che consigli (che credo sia questo 
http://www.librinformatica.it/novita/libri00/aw0783.htm
) richiede già 
un'infarinatura del C++ per quanto tu sappia? (ho notato che sul link 
precedento a livello dice avanzato)
Grazie, ciao.