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

Ciao a tutti,
Come si ridefinisce l'operatore < per utilizzare la funzione sort su un
vettore di puntatori ad oggetti? Mi spiego meglio:
class T {
public:
  ...
  double score();
  ...
}
...
vector<T*> vec;
...
sort(vec.begin(), vec.end());
...
in cui il criterio di ordinamento deve fare riferimento a score cioe'
vorrei definire l'operatore < in questo modo:
bool operator < (const T* t1, const T* t2) {    // (*)
    return (t1->score() < t2->score());
}
ma quando compilo alla riga (*) viene visualizzato il seguente messaggio
di errore:
prova.cpp:15: `operator <(const T *, const T *)' must have an argument
of class or enumerated type
Qualcuno puo' aiutarmi?
Grazie in anticipo,
Maurizio


ciao
Massimo

Newsgroup: it.comp.lang.c++
Titolo: Informazione Newbies

Secondo voi, conviene iniziare a studiare il C o il C++ per un Newbies???
Potete anche consigliarmi un buon link dove posso trovare magari le
differenze tra i due linguaggi e capire quello che piů č adatto a me???
Grazie

Io sono ancora un novellone del C++, ma me la cavicchio abbastanza bene in
C.
I due linguaggi sono abbastanza diversi fra loro, non tanto nelle
espressioni e sintassi utilizzate ( il while, il for lo fai allo stesso
modo) ma perchè il C++ cambia radicalmente il tuo modo di programmare:
dovrai imparare a pensare ad oggetti, il che non è assolutamente facile per
chi ha smanettato a tutta forza con puntatori e schifezze varie del C.
Ti do allora solo un consiglio, vista anche la mia poca esperienza in C++.
Avvicinati alla programmazione ad oggetti, la filosofia intendo, e trai
delle conclusioni personali sul giovamento di una tale metodologia per le
tue esigenze si software developing.
Se cerchi un linguaggio di programmazione "non di dattico" allora il C può
bastare, altrimenti inizia direttamente dal C++.
Bye
Sebastiano
Newsgroup: it.comp.lang.c++
Titolo: barra di stato di win95

salve a tutti,
 usando il VC++ 5.0 e le MFC ho creato un programma in cui, in
corrispondenza di un certo evento, si crea una finestra che resta
sempre in primo piano anche se riduco a icona il programma che l'ha
generata (ho usato l'attributo  WS_EX_TOPMOST).
 Il problema e che non voglio che nella barra di stato di win95 mi
appaia il tasto corrispondente alla finestra suddetta.
Come posso fare ?
grazie a chiunque mi aiuti.
-------------------
mimmo....@ntt.it
-------------------

Come posso fare ?
Se quando riduci la window del programma che genera la WS_EX_TOPMOST,
questa rimane visibile, allora vuol dire che crei una window con il
parametro "hwndParent" NULL.
Questo effettivamente fà si che venga visualizzato il "tasto" corrispondente
sul taskbar ("barra di stato" come la chiami tu).
Puoi evitare questo specificando WS_EX_TOOLWINDOW nell'extended style.
Giusto per tua informazione, se invece crei la window WS_EX_TOPMOST
specificandone però "hwndParent" con l'handle della window del tuo
programma, allora non avrai bisogno di WS_EX_TOOLWINDOW, però se
minimizzi il parente, la WS_EX_TOPMOST sparirà per riapparire solo quando
"ristori" il parente.
Saluti, Neil

 Come posso fare ?
Puoi usare lo stile WS_EX_TOOLWINDOW. 
Antonello
-- 
// --------------------------------------------------------
// Antonello Salvatucci, Software Engineer
// LEGO Media International
// Klovermarken 120, 7190 Billund DENMARK
//
// antonello at digi. lego. com         
http://www.lego.com

Newsgroup: it.comp.lang.c++
Titolo: Tasto ESC

Vorrei scrivere un prog con un semplice menu del tipo:
1- ...
2- ...
3- ...
ESC- Esci dal prog.
Ho allora fatto uno switch di un char...
Ma come  intercetto l'esc? 
Con il Pascal mi bastava scrivere #27, mentre col C++?
ZED.

 ha scritto nel messaggio
news:DJnT7.12332$o9.5...@news1.tin.it...

scrivi semplicemente 27
Pela
Newsgroup: it.comp.lang.c++
Titolo: Aiuto sulle funzioni

Ciao a tutti;
ho un disperato aiuto di qualche anima pia.
Sono alle prime armi con il C e mi serve un aiuto sulla dichiara<ione
delle funzioni. Vi spiego : chi può dirmi come si fa a far restituire
due valori alla stessa funzione.
V faccio un esempio:
-si progetti e si codifichi una funzione in C che riceve dal chiamante
tre numeri interi x,y,z, e trasmette al chiamante il valore minimo e
massimo.
--si progetti e si codifichi una funzione in C che riceve dal
chiamante due numeri interi a eb  e trasmette al chiamante il
risultato e il resto della divisione.
( Se riuscite a scrivermi anche il programma in modo che riesco
leggendolo a imparare)
Chiunque riceva questo e puo darmi una mano gli sarò riconoscente per
tutta la vita 
VI PREGO !!!!!!!!!!!!!!!!!!!!!
Lukesw 

 leggendolo a imparare)
Si impara di piu' facendo ;-)
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

 leggendolo a imparare)
Questo magari è chiedere un po' troppo ;-)
Massimo

 leggendolo a imparare)
Questo magari è chiedere un po' troppo ;-)
Massimo

void find_min_max( int x, int y, int z, int *pMin_xyz, int *pMax_xyz );
Scusa se lo sottolineo .
Ma se deve imparare meglio che impari nella maniera corretta :
//in questo modo i parametri sono intesi come puntatori 
void find_min_max( int x, int y, int z, int *pMin_xyz, int *pMax_xyz);
//adesso sono riferimenti
void find_min_max( int x, int y, int z, int &pMin_xyz, int &pMax_xyz);

 risultato e il resto della divisione.
Ora se vuoi puoi dire che e' OT, ma se deve farlo in C non puo' usare le
reference!

Newsgroup: it.comp.lang.c++
Titolo: Update DB SQL

Sto cercando di interfacciare una dll ad un database SQL con la seguente
struttura di connessione:
 /* Alloca L'handle di Environment */
 retcode = SQLAllocHandle(SQL_HANDLE_ENV, SQL_NULL_HANDLE, &henv);
 /* Se non ci sono stati errori
 Imposta la versione di ODBC */
 retcode = SQLSetEnvAttr(henv, SQL_ATTR_ODBC_VERSION, (void*)SQL_OV_ODBC3,
0);
 /* Se non ci sono stati errori
 Alloca l'handle di connessione */
 retcode = SQLAllocHandle(SQL_HANDLE_DBC, henv, &hdbc);
 /* Se non ci sono stati errori
 Imposta il timeout di login a 5 secondi */
 retcode = SQLSetConnectAttr(hdbc, (SQLINTEGER)SQL_ATTR_LOGIN_TIMEOUT,
(SQLPOINTER)5, (SQLINTEGER)0);
 /* Se non ci sono stati errori
 Effettua la connessione sal database */
 retcode = SQLConnect(hdbc, (SQLCHAR*) "pipipipi", SQL_NTS,
        (SQLCHAR*) "sa", SQL_NTS,
        (SQLCHAR*) "pipipipi", SQL_NTS);
 /* Alloca l'handle di stantement */
 retcode = SQLAllocHandle(SQL_HANDLE_STMT, hdbc, &hstmt);
 return 1;
ma quando vado ad effettuare questo comando di update:
// Esegue la query al database SQL
 retcode = SQLExecDirect(hstmt,(SQLTCHAR*)tmp_qry, SQL_NTS);
 retcode = SQLError(henv, hdbc, hstmt, szSqlState, &fNativeError,
szErrorMsg, MSG_BUF_SIZE, &cbErrorMsg );
dove tmp_qry = UPDATE FTP SET QuotaChange = '170' WHERE username = 'SIMONE'
mi viene risposto:
[Microsoft][ODBC Driver Manager] Stato del cursore non valido.
Non riesco a capire cosa potrebbe essere il problema.
Vi ringrazio in anticipo per la soluzione a questo problema. :)


Quale DBMS stai usando ?
Prova questa funzione (se non l'hai usata) usando un valore diverso al
posto di SQL_CUR_USE_DRIVER.
retcode = ::SQLSetConnectAttr( m_hdbc, SQL_ATTR_ODBC_CURSORS, (void*)
(SQLUINTEGER) SQL_CUR_USE_DRIVER, SQL_IS_UINTEGER );
ZEC.

Ho scoperto che questo errore avviene solo se la query di aggiornamento e'
eseguita dopo una query di select

E' possibile che l'unica soluzione e' creare due handle uno di select ed uno
di update o ogni volta che si effettua una qualsiasi query liberare e
richiedere un'altro handle stmt ?
Newsgroup: it.comp.lang.c++
Titolo: gestione file

Salve,
avrei bisogno di cancellare il contenuto di un file con estensione txt. Ho
bisogno di farlo direttamente cioč senza accorgimenti tipo ricopiare il file
in memoria (per esempio in una lista), cancellarlo e poi ricopiarlo. Esiste
qualche istruzione che mi consenta per esempio di leggere le righe del file
e cancellarle ad una ad una?
Oppure per esempio tramite un oggetto ostream che ho cosě definito:
ifstream listain("file.txt", ios::in | ios::out);
ostream listaout(listain.rdbuf());

 in memoria (per esempio in una lista), cancellarlo e poi ricopiarlo.
Esiste
Una vecchia fcreate()?
--
Alessandro Monti

Salve a tutti,
avrei una domandina veloce: esiste una funzione che ritorni semplicemente se
esiste un dato file, o bisogna usare una qualche funzione open o read o
simili e verificarne il valore di ritorno?
Ciao, Salvo.



simili e verificarne il valore di ritorno?
O chiami una qualche api del s.o., oppure la seconda che hai detto.
Paolo
-----------------------------------------------
  Paolo Marotta
  Computer Science, University of Pisa
  home:   
http://www.cli.di.unipi.it/~marotta
-----------------------------------------------

 wrote in message
38145c03...@proxy.cli.di.unipi.it...

Newsgroup: it.comp.lang.c++
Titolo: Errore strano

Salve ragazzi, sono disperato perchè non riesco a far girare un piccolo
programmino. Ho 6 partecipanti ad un concorso, da cui devo memorizzare il
loro nome, la loro età e il punteggio ottenuto, poi devo far comparire in
output, i risultati dei voti da quello più alto a quello più basso con i
relativi nomi. Il programma in compilazione mi da il seguente errore:
storage size of 'partecipanti' isn't know, che tipo di errore è? Cmq questo
è la sorgente
#include <iostream>
using namespace std;
struct aspriranti
{
     char nome[12];
     int voto;
     int eta;
};
struct aspiranti partecipanti[5]; /* L'ERRORE VIENE SEGNALATO SU QUESTA RIGA
*/
int main()
{
     int j,i,app;
 for(i=0;i<=5;i++)
 {
      cout<<"Inserire nome" <<endl;
      cin>>partecipanti[i].nome;
      cout<<"Inserire voto" <<endl;
      cin>>partecipanti[i].voto;
      cout<<"Inserire età" <<endl;
      cin>>partecipanti[i].eta;
 }
 for(i=0;i<=5;i++)
 {
      for(j=i+1;j<=5;j++)
      {
           if (partecipanti[i].voto<partecipanti[j].voto)
           {
                app=partecipanti[i].voto;
                partecipanti[i].voto=partecipanti[j].voto;
                partecipanti[j].voto=app;
           }
      }
 }
 cout<< "Lista ordinata" <<endl;
 for(i=0;i<=5;i++)
 {
      cout<<partecipanti[i].nome <<endl;
      cout<<partecipanti[i].voto <<endl;
 }
return 0;
}
Grazie a chi vorrà aiutarmi ;-)

 */
 "aspriranti"
 "aspiranti"
Max

 ha scritto nel messaggio
news:bv8u7e$daj$1...@newsreader.mailgate.org...

Grazie e pensare che erano 2 ore che stavo cercando di trovare l'errore....
:-()

 Grazie a chi vorr�aiutarmi ;-)
Questa soluzione fa molto C...
in C++ suona meglio come:
#include <iostream>
#include <string>
#include <vector>
using namespace std;
 
struct aspirante
{
     string nome;
     int voto;
     int eta;
};
ostream& operator<< (const ostream& out, const aspirante& rhs)
{
        return out << rhs.nome << " " << rhs.voto;
}
struct ordinaVoto : public binary_function<aspirante, aspirante, bool>
{
     bool operator()(const aspirante& lhs, const aspirante& rhs)
     {
        return lhs.voto < rhs.voto;
     }
}
int main()
{
  int i,app;
  vector<aspirante> v(5);
  aspirante tmp;
 
  for(i=0;i<=5;i++)
  {
       cout << "Inserire nome" << endl;
       cin >> tmp.nome;
       cout << "Inserire voto" << endl;
       cin >> tmp.voto;
       cout << "Inserire eta << endl;
       cin >> tmp.eta;
  }
  sort(v.begin(), v.end());
  copy(v.begin(), v.end(), ostream_iterator<aspirante>(cout, "\n"));
  cout << endl;
  return 0;
}
A braccia mi sembra che possa andare...
Ciao
Paolo
Newsgroup: it.comp.lang.c++
Titolo: Stringhe?

Ciao a tutti.
Sto imparando a programmare in C++ (conosco bene il VB) e non ho molto
tempo...
Una domanda semplice semplice: non capisco come dichiarare le stringhe. Mi
spiego se voglio un int o un long è sufficiente
int a;
ma se volessi fare come in VB
Dim s as String
s = "Ciao"
come faccio? I tipi char mi sembra di aver capito contengono un solo
carattere.
E un'altra cosa: cosa significa l'* che trovo spesso in alcuni esempi di
C++?
Grazie e scusate se sono banalità, ma come ho già detto non ho proprio tempo
di leggermi manuali o help.
Marco Trapanese

 di leggermi manuali o help.
Uhm... veramente, non per fare il guastafeste, ma non so se ci salti
fuori...
Have fun
Daniele.

 using namespace std;
che significa 'using namespace std'?
che per esempio devo scrivere std->qualcosa() mi basta scrivere qualcosa()?
ciao
xAERO.cpp

 writes:

E' un costrutto del C++ (vedi qualunque tutorial tra quelli
consigliati nelle FAQ).
Tutte le entita' della standard library sono definite nel namespace
std; "using namespace std;" ti permette di scrivere, ad esempio,
"string" al posto di "std::string".
-- 
Maurizio Loreti                         
http://www.pd.infn.it/~loreti/mlo.html
Univ. of Padova, Dept. of Physics - Padova, Italy            
lor...@pd.infn.it
Newsgroup: it.comp.lang.c++
Titolo: Aiuto programmazione Lista Collegata

Ho dei problemi [soprattutto concettuali] nella cancellazione di elementi di
una lista collegata così strutturata:
[x]-[x1]-...-[x2]
Ora io devo rimuovere questi cassonetti quando il valore x è positivo.
Quindi devo avere come risultato una nuova lista con soli valori negativi:
posto il sorgente ke è breve:
struct elemento {
int valore;
elemento*succ;
};
const int dim = 100;
typedef elemento*arraylista[dim];
int n;                //cardinalità della lista
cin>>n;
elemento*p;
p = new elemento;
cin>>p->valore;
elemento*p1;
p1 = p;
for (int i=1; i<n; i++) {
p1->succ = new elemento;
p1 = p1->succ;
cin>>p1->valore;
}
p1->succ=NULL;
p1 = p;
while(p1!=NULL) {
if (p1->valore>0)  {
 delete p1->valore;
 }
}
Ora in questo ultimo ciclo nn riesco a cancellare l'elemento p1->valore.
Devo usare queste sintassi così semplici perchè questo corso iniziale di c++
ha dato poche basi e allora il tutto deve avvenire tramite puntatori e il
comando delete. Se qualcuno è in grado di aiutarmi ne sarei veramente grato.
Anche un commento alla modifica mi sarà molto utile per l'esame.
Grazie Anticipatamente
raid3n

 ha scritto nel messaggio
news:iwR%8.116897$Jj7.2...@news1.tin.it...


 ha scritto nel
messaggio news:newscache$9t0tzg$tt1$1...@listsrv01.csi.it...


 Dovrei farlo sulla stessa lista. Praticamente devo elaborare la lista
data.
beh, non č un grosso problema, ti consiglio di usare un puntatore
temporaneo, in cui memorizzare il link all'elemento successivo (un elemento
*pTemp), cosě puoi eliminare l'elemento negativo, senza perdere il link. Non
puoi non usare pTemp, in quanto non riusceresti a deallocare la memoria
occupata dall'elemento positivo.
Un po' come scrivere:
int temp = 0;
int a = 6;
int b = 9;
temp = a;
a = b;
b = temp;
a questo punto temp non serve piů


 ha scritto nel
messaggio news:newscache$ml7tzg$8d2$1...@listsrv01.csi.it...


 ha scritto nel messaggio
news:EaV%8.139805$vm5.4...@news2.tin.it...

Newsgroup: it.comp.lang.c++
Titolo: Ohle . Ce l'ho fatta. Il mio primo algoritmo C++ funziona

Eccolo:
#include "stdafx.h"
#include "windows.h"
#include <iostream.h>
int main()
{
char iArr[255];
WPARAM wparam = 255;
HWND hWnd;
long ocast = 1576;
char *ptn;
long ferror;
LPARAM lparam;
hWnd=(HWND)ocast;
ptn = iArr;
ferror = SendMessage(hWnd,WM_GETTEXT,wparam,(long)ptn);
if (ferror == 0)
cout << "\n" << "funzione fallita" << "\n";
return(0);
}
else {
   for(int i=0; i<=40; i++)
   cout << "\n" << iArr[i];
   }
return(0);
}
Il programmino legge la stringa della barra del titolo di un'applicazione
specificata dall'handle nella variabile long ocast.
Wparam specifica il numero massimo di caratteri . L'ouput non č un gran che
ma per l'uso che intendo fare di questo algoritmo č piů che sufficente.
Vorrei un giudizio :)

  Fulvio.
Quando la stringa in uscita è minore di 40 caratteri il ciclo continua a
leggere nell'array, così escono caratteri strani. Dovrebbe essere così:
while (*iArr) {
    cout << *iArr;
    iArr++;
}
cout << '\n';
oppure molto piu semplicemente
cout << iArr;

 wrote in message
7o7jhf$sdk$1...@nslave1.tin.it...


Sì , infatti. Ho già apportato le modifiche. Anzì , adesso sono riuscito  a
salvare la stringa su file . Grazie comunque per il consiglio.  Ancora non
ho molta dimestichezza con i cicli.

return(0);
il codice 0 non si usa quando il prog esce con successo?
Topoldo
(Grazie a Dio, sono ateo)

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

Beh ragazzi, sarà che io sono ancora agli inizi ma davvero non capisco.
mi sono andato a leggere la funzione random_shuffle, ok, l'ho provata e
*ovviamente* non mi funziona (non mi riconosce la funzione... ok).
penso, avrò sbagliato io.
allora copio-incollo l'esempio di codice fatto dall'help del Borland C++
5.02 e, incredibile ma vero, mi da degli errori. Errori presenti in
vector.h.
Io ho sempre avuto un rapporto conflittuale col Borland (tipo debug step by
step che mi si piantano e roba simile) ma questo è troppo.
avete impressione a proposito?
ivan

 *ovviamente* non mi funziona (non mi riconosce la funzione... ok).
Eccoti un esempio funzionante:
#include <iostream>
#include <algorithm>
class Random
{
    public:
        int operator () ( int n ) { return rand() % n; }
};
int main()
{
    srand( time( 0 ) );
    int Mazzo[ 40 ];
    for ( int i = 0; i < 40; ++i )
        Mazzo[ i ] = i + 1;
    std::random_shuffle( Mazzo, Mazzo + sizeof( Mazzo ) / sizeof( Mazzo[
0 ] ), Random() );
    for ( int i = 0; i < 40; ++i )
        std::cout << Mazzo[ i ] << ' ';
    std::cout << std::endl;
    return 0;
}
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

Newsgroup: it.comp.lang.c++
Titolo: Nascondere il processo dalla lista dei task

dai, Wave++ e si che non sei l'ultimo arrivato sul ng...
SEI OT! VAI SU it.comp.programmare.win32
Ciao, Davide.

Come da soggetto col bc++
thx
-- 
Wave++, member of EventOrizon software
http://members.xoom.it/wavexx
Newsgroup: it.comp.lang.c++
Titolo: Info: Homepage gratis, si puo?

 Ciao e grazie.
 se la pagina e' d' interesse radio/ elettronico.... saremo ben lieti di
ospitarla
visita il Ns sito e scrivici per ulteriori info ... 73
--
------------------ CIAO e grazie per averci scritto ------------
Lelio (ik1odn ) e Ezio    
http://www.radioecomputer.com
mailto:
ra...@radioecomputer.com
--------------------------------------- 73 ---------------------

Complimenti per il mega-cross post.
Comunque vai su
www.geocities.com
ciao


html gratuitamente?
www.aspide.it
 è italiano mentre
www.theglobe.com
 è un'alternativa molto meno intasata di 
www.geocities.com
--------------------------------------
The Bos
the...@mbox.procom.it
http://members.theglobe.com/thebos/
 (USA)
http://aspide.it/freeweb/the-bos
 (ITALY)
--------------------------------------

html gratuitamente?
Nel mio Web Site raccolgo tra le altre cose i server che forniscono pagine
web gratis (purche' non siano a scopo di lucro). L'indirizzo e' qui sotto.
Ciao.
--
Marco Vincenzo Carnazzo
Web Site: 
http://www.geocities.com/SouthBeach/Marina/9922/
Le mie creazioni software:
http://volftp.tin.it/IT/IT/ITALIANI/carnazzo/index.htm
"Sara' perche' i poeti guardano spesso le nuvole che sono i primi ad
avvertire la tempesta" - Bisca 99 Posse
Newsgroup: it.comp.lang.c++
Titolo: Replace

 
         Ciao ragazzi,
Ho un quesito da porvi... (per voi banale) ma per me no :(
devo rimpiazzare alcuni caratteri in un array di char... ovvero
char *myString;
che contiene il valore ... 12.34.56.78
Bhe dovrei sostituire i punti con "/a" ... ed ottenere: 12/a34/a56/a78
il risultato finale dovrebbe essere :
char *myString = 12.34.56.78
char *swap = 12/a34/a56/a78
Potreste aiutarmi ?
Vi premetto che non ho la possibilità di convertirlo in CString o in
un'altra stringa :(
Avevo scritto una cosa simile (cerco di ricordarla a memoria, quindi abiate
pietà se trovate errori stupiti !)
char *swap
for (i=0 ; i < strlen(myString) ; i++)
{
	if ( myString[i] == '.' )
		swap = strcat(swap, "//a");
	else
		swap = strcat(swap, myString[i]);
}
Questo codice errori non me ne dà... ma non funziona !!!!
La cosa che piu mi preme sapere è :
1) come la inizializzo la var. "swap" ??? .... se scrivo:
    swap = "";
non riesco piu a scriverci niente (nel senso che resta sempre vuota)
2) come sposto ogni singolo carattere in swap ??
(penso che il punto 1 sia la chiave .... almeno spero !)
so che è una ca..z..ta ... però io non riesco a farlo :( ...
potreste gentilmente aiutarmi ?? ... anche con altre routine...
Grazie 1K
CIao
Luca
--------------------------------
Inviato via 
http://arianna.libero.it/usenet/

 Potreste aiutarmi ?
1) Fai puntare un ptr P1 al primo carattere di myString.
2) Fai puntare un ptr P2 al primo carattere di swap.
3) Se P1 /non/ punta a un '.' allora copia il carattere puntato da P1 
nella locazione puntata da P2 e sposta in avanti entrambi i puntatori di 
una posizione. Se il carattere appena scritto è '\0' (zero), vai al 
punto 5).
Se invece P1 punta a '.' allora sposta in avanti P1, scrivi '/' nella 
locazione puntata da P2, sposta P2 in avanti, scrivi 'a' nella locazione 
puntata dal nuovo P2 e quindi sposta nuovamente P2 in avanti.
4) Vai al punto 3).
5) Fine.
Kiuhnm

Io farei così:
char *swap
****allochi swap della lunghezza che ti serve con  malloc, o calloc****
for (i=0 ; i < strlen(myString) ; i++)
{
        if ( myString[i] ==  '.' )
                swap[i] = '//a');       //oppure strcat(swap, "//a")
        else
                swap[i] = myString[i]);
}
un modo per inizializzare le stringhe è :   swap[0] = '\0';
Ciao

                 swap[i] = '//a');       //oppure strcat(swap, "//a")
Attenzione che '/', '/' e 'a' sono tre caratteri.
Ciao,
Nicola
Newsgroup: it.comp.lang.c++
Titolo: Dubbi sui puntatori

Ciao a tutti,ho una domanda, forse stupida, ma per me  veramente importante:
Sto affrontando il discorso dell'ereditarietà, e ho visto che un puntatore
del tipo della classe base può puntare alla classe derivata!
Questo puntatore se deferenziato può restituire solo la parte della classe
base facente parte della classe derivata!O.K ma non riesco a capire il
motivo,da quel che ne so io un puntatore può puntare solo ad un oggetto del
suo stesso tipo!
Devo dedurre che una classe derivata appartiene alla classe base,è dello
stesso tipo?
Non mi sembra che tutto ciò abbia molto senso,se mi poteste chiarire le idee
ve ne sarei molto grato!!!
Grazie mille!
Francesco

 wrote in message
JhpI8.16305$8x3.3...@twister1.libero.it...

Prova ad immaginare che l'oggetto derivato abbia un metodo che differisca di
un solo epsilon dal metodo dell'eggetto base.
Il compilatore, per risolvere la chiamata ed eseguire il metodo giusto ha
bisogno di sapere a chi ti riferisci.
AnTOr

 stesso tipo?
Una classe derivata *e'* una classe base (relazione "is_a").
-- 
Maurizio Loreti                         
http://www.pd.infn.it/~loreti/mlo.html
Dept. of Physics, Univ. of Padova, Italy          loreti at pd dot infn dot it

 ha scritto nel messaggio
news:JhpI8.16305$8x3.3...@twister1.libero.it...

L'ereditarietà modella una relazione gerarchica del tipo Is-A. In parole
povere è la relazione che c'è tra il concetto di animale e quello di gatto,
di cane etc. Adesso immaginiamo una situazione del genere, anche se poco
realistica:
class Animal
  {
  public:
    virtual void mangia() = 0;
  };
class Dog : public Animal { ... };
class Cat : public Animal { ... };
Non sappiamo come un generico animale mangi ( funzione virtuale pura ) ma
ogni animale sà come mangiare (ridefinizione nelle classi derivate).
Immaginiamo di avere una routine che faccia alcune cose e faccia mangiare un
insieme di animali. come fare questa routine?
void foo ( std::vector<Animal*>& vec )
  {
  // fa altre cose
  ...
  for( int i = 0; i < ls.size(); ++i )
    vec[i]->mangia();
  }
(nota per gli esperti che mi dovessero leggere: è solo un esempio, so che
STL andrebbe usata diversamente e di aver violato un principio fondamentale
OO, non replicate su questo)
nel vettore possiamo avere sia cani che gatti, gestendoli come puntatori
alla classe base. è per questo che è possibile assegnare un puntatore a
classe derivata ad un puntatore a classe base (il viceversa non si può
fare).
Spero di essere stato chiaro!
Ciao,
--
*---------------------------------------
* Fulvio Esposito
* E-Mail: 
ful...@libero.it
* WWW: 
http://digilander.iol.it/fesposito
*---------------------------------------


Ciao Fulvio,
scusa se replico su questo :-)
Non ho ben capito quale principio fondamentale OO hai violato in questo
esempio.
Maurus

 esempio.
Ho preso una svista colossale! :-( il fatto è che ho ripreso tale esempio da
uno in cui si violava la legge di Demeter, l'ho modificato, e adesso non c'è
più la violazione. Pardon.

Newsgroup: it.comp.lang.c++
Titolo: aiuto :avvio condizionato

Avrei il seguente problema devo analizzare con il debug sotto borland
builder c++ un programma che in avvio richiede degli argomenti angiuntivi
,ma se avvio il debug in argv e solo contenuto il path del file ,ho provato
nel main(int argc,char **argv) a scrivere le opzioni aggiuntive
(argv[1]="-cin") ma non va sapete dirmi come posso aggiungere questa opzione
Grazie



Probabilmente c'è una qualche impostazione da fare per la quale sei OT
qui (mentre hai fatto bene a postare su it.comp.programmare.win32),
ricordati però di non cross-postare e se lo fai di impostare il
follow-up.
-- 
                    Marco Barisione (ICQ 84277092)
Se sei interessato alla creazione di un newsgroup generico in cui si
possa parlare di quei linguaggi di programmazione senza un gruppo
apposito vota per it.comp.lang su it.news.votazioni.


nel menu Run->Parameters->RunParameters puoi inserire i parametri del
programma
al posto di argv e argc in BCB puoi usare le variabili ParamStr e
ParamCount
ciao
Ermando
Newsgroup: it.comp.lang.c++
Titolo: auto_ptr

Salve,
vorrei alcuni chiarimenti su questo argomento.
Supponiamo di avere il seguente sorgente:
#include <string>
#include <memory>
int main() {
 auto_ptr<string> s1 (new string ("Ciao"));
 auto_ptr<string> s2 (s1.release());
 s1->size(); // Errore
}
Il libro di Lippman dice che il metodo release() trasferisce il "possesso",
cioè la responsabilità dell'auto_ptr di gestire la lifetime dell'oggetto, da
s1 a s2, ma non dice che non ci si può più riferire a s1. Nonostante ciò,
s1->size() mi da errore. Quindi ho pensato che l'impossibilità di riferirsi
all'oggetto era sottintesa... ma allora, visto che lo stesso comportamento è
ottenuto dal seguente codice:
auto_ptr<string>s2(s1);
a che serve in pratica release()?
Il puntatore interno e il possesso vengono trasferiti comunque, o sbaglio?
Grazie
--
Luigi

 a che serve in pratica release()?
a riottenere il controllo manuale dell'oggetto puntato; ad esempio:
        auto_ptr<int> p = new int;
        int* p2 = p.release();
        ...
        delete p2;
ciao Anto
-- 
Antonio Cuni, 20 anni, studente
Brainbench C++ Master: 4.73, higher than 99% of all previous test takers.
C Language: 3.79, higher than 92% of all previous test takers.
Guida C/C++ di Programmazione.it: 
http://cpp.programmazione.it

>         auto_ptr<int> p = new int;
Non ci vuole l'uguale
Cmq, il vantaggio di release() deriva dal fatto che essendo un metodo può
essere applicato anche dopo all' auto_ptr e non per forza al momento della
definizione dell'auto_ptr. Giusto?
Grazie
--
Luigi

 momento della definizione dell'auto_ptr. Giusto?
ovviamente sono solo punti di vista, ma mi sembra che tu inverta le cose. 
Diciamo che *il* modo per rilasciare l'ownership e` chiamare release, 
mentre il costruttore di copia e` solo una "scorciatoia".


 mentre il costruttore di copia e` solo una "scorciatoia".
Beh si, infatti dicevo che essendo un metodo è più "flessibile" e tu stesso
hai detto che release() serve rilasciare il possesso manualmente. In
pratica, il costruttore di copia lo usi solo quando crei l'auto_ptr, invece
il metodo lo usi anche dopo, perchè essendo un metodo, lo applichi quando
vuoi per gestire manualmente il possesso del puntatore. Poi se si vuole
usare anche quando non serve (ovvero quando dichiari l'auto_ptr e usi il
costruttore di copia) è un'altro discorso.
Mi sono chiarito?
Ciao
--
Luigi
Newsgroup: it.comp.lang.c++
Titolo: certificazione

Salve Ragazzi, avrei bisogno di aiuto, devo inserire in un progetto visual c
la certificazione che ho ottenuto da Thawte Server CA come posso inserirlo
nel mio progetto ? grazie

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: hook di tastiera senza DLL in 2 righe!

Salve a tutti
cercando tra i msg vecchi ho visto e provato l'istallazione dell'hook da
tastiera di Alex Martelli, ok bene... ma perche' nessuno ha preso in
considerazione l'utilizzo di   GetAsyncKeyState  ??
utilizzando questa non e' necessaria nessuna dll, la funzione ritorna un
valore SHORT, controllandone gli opportuni bit si puo' vedere se in tasto
specificato e', nell'istante della chiamata, premuto o alzato e si controlla
anche se e' stato pressato in un qualche momento dall'ultima chiamata alla
funzione stessa (e' asincrona appunto)
con queste 2 righe di codice messe dentro un timer con un intervallo di 20ms
si intercettano tutti i caratteri alfabetici (si può estendere facilmente a
tutti gli altri):
for (short int a=65; a<=90; a++)
  if (GetAsyncKeyState(a)&255) Memo1->Text=Memo1->Text + (char)a;
in particolare qui i caratteri entrati in qualsiasi altra applicazione
vengono anche stampati in una semplice memo dentro la mia applicazione...
capisco che sara' una soluzione piu' improvvisata, e che forse impegna piu'
risorse... ma quantomeno e' terribilmente piu' semplice che installare
l'hook con la dll.. visto che si tratta SOLO di quelle 2 righe
Alex e tutti quelli che si sono occupati di questo.. che ne pensate?
ci sono controindicazioni nascoste? l'avevate gia' provata?
fatemi sapere
ciao
Salvo



ci sono controindicazioni nascoste? l'avevate gia' provata?
In un ambiente multitasking, il tuo processo puo` trovarsi a "dormire",
perche` altri hanno temporaneamente priorita` su di lui, e in questo
caso perderebbe potenzialmente degli eventi di interesse (pressioni
di tasto).  Tentare di aggirare questa limitazione aumentando in modo
artificiale la priorita` del tuo processo affossera` le prestazioni della
macchina (e` un esempio di "busy waiting"): se anche nessuno sta
premendo nessun tasto, e il tuo processo e` tenuto a priorita` tanto
elevata da garantire che i tasti non si perderebbero se venissero
premuti, vi saranno continue commutazioni di contesto verso il tuo
processo (e di nuovo da esso al processo che sta facendo sulla
macchina un qualsiasi lavoro vero).
Un hook di tastiera evita tutti questi problemi e, se correttamente
utilizzato, ti garantisce il funzionamento desiderato con minimo overhead.
Alex
Newsgroup: it.comp.lang.c++
Titolo: Compilatore GNU

Sapete dirmi se sia legale vendere dei programmi realizzati con i
compilatori freeware GNU?
Grazie a tutti.

 compilatori freeware GNU?
E' sicuramente legale. Questo vale anche i programmi realizzati
con compilatori commerciali.
-am

compilatori freeware GNU?
Si`, e` perfettamente legale.
Alex

 compilatori freeware GNU?
visto che col compilatore GNU per dos (aka DJGPP) ci hanno fatto quake,
credo sia legale ;)
---
Ranger, togli .fr dal mio indirizzo per rispondere
http://members.tripod.com/%7Eranger_rg/

modificarlo (almeno per Linux). Sotto dos ho scoperto che Quake e'
No, neppure sotto Linux.
Alex

 l'ombra....
no, se i programmi li scrivi da 0 puoi venderli senza sorgenti. e` solo
se modifichi un programma sotto GPL, allora si che devi rendere disponibili
i sorgenti.


 


 *non* rientra in questa condizione.
...da cui la domanda imbecille del sottoscritto:
Che problemi ci sono con le librerie (libc, ad esempio)?
In quel caso il mio eseguibile contiene sicuramente "parti non scritte
da me", devo usare delle altre librerie? linkare solo dinamico?
Grazie,
Alberto
-- 
Alberto BARSELLA
PGP fingerprint = 13 3F 22 D2 0B 0A D3 25  F1 89 FE B5 82 AD 75 2A
** Beliefs are dangerous. Beliefs allow the mind to stop functioning.
A non-functioning mind is clinically dead.  Believe in nothing... **

da me", devo usare delle altre librerie? linkare solo dinamico?
La LGPL (licenza GNU per le librerie) e` infatti diversa dalla
normale GPL.  Se distribuisci un programma che usa librerie
coperte da LGPL, devi, fondamentalmente, garantire che il
tuo utente possa sostituire altre versioni, aggiornate e corrette,
delle librerie stesse, a quelle che usi tu.  Linkare solo dinamico
va benissimo; in alternativa, puoi distribuire i tuoi oggetti (x.o),
cosi` che l'utente possa, se occorre, rilinkare.
Alex

 cosi` che l'utente possa, se occorre, rilinkare.
Quindi ricapitolando, se il tuo codice non e' la modifica di codice 
sotto GPL ma e' scritto ex-novo e se usa librerie, statiche o 
dinamiche reperibili ovunque puoi venderlo e puoi non distribuire i 
sorgenti, al limite gli oggetti (se vuoi)?
** Email replies to 
md7...@mclink.it
 **
visit my homepage at: 
http://www.volftp.tin.it/IT/IT/ITALIANI/rullo/index.htm
 

sorgenti, al limite gli oggetti (se vuoi)?
Precisamente: *devi* distribuire gli oggetti se usi librerie LGPL 
staticamente; *non occorre* se distribuisci l'eseguibile, senza le
librerie, e quest'ultime sono usate dinamicamente.
Alex

 librerie, e quest'ultime sono usate dinamicamente.
No scusa, adesso sono confuso, oggetti o sorgenti


No scusa, adesso sono confuso, oggetti o sorgenti
La LGPL non ti obbliga mai a distribuire i sorgenti di un
programma linkato con librerie da essa coperte.
Se modifichi le librerie stesse, allora si`, devi distribuire
anche i sorgenti delle tue modifiche, se distribuisci gli
oggetti delle librerie modificate.
Alex
Newsgroup: it.comp.lang.c++
Titolo: Newbie question

I am extremely new and would like to know just one thing at present.... My
code below starts by accessing the 'main' sub but when compiled to an *.exe
simply goes straight through and closes. From what I have read in a Windows
app you can watch for messages and exit on an exit command. But this code is
for a command line program - The question is how do I stop the program from
simply falling through - as when run from the *.exe I never get to see
anything except a flash.....
//deals with file stuff
#include <stdio.h>
#include <iostream.h>
#include "file_class.h"
//
void write_file(void);
int main(){
//when the file runs this sub simply does things way too fast for me and
does
//not wait for me to hit any key etc...
     file_class fc;
     fc.dothis();
     write_file();
     return 0;
}
void write_file(void){
 //..
 FILE *fp;
 int i =1;
 fp = fopen("c:\\test.txt","w");
 if (fp) {
  while (i < 20000){ //create our loop
  fprintf(fp,"%d",i);
  i = i+ 1;} //increment our loop
  cout << "Success!\n"; // this only returns good if the fp is true
 }
 else if (!fp){
  fputs("error opening the file.\n",stderr);
  cout << "ERROR!\n";
 }
 //close the File Handle
 fclose(fp);
}
Regards
--
James Jenkins
www.software-dungeon.co.uk
www.e-clips.com.au
--
James Jenkins
www.software-dungeon.co.uk
www.e-clips.com.au

 anything except a flash..... 
Hi James! I'd like to ask you a question: have you read the name of 
this newsgroup, and at least a dozen of articles? Don't you wonder why 
all of them are in Italian?
[...however, try: system("pause") ]
-- 
Ciao, Marvin

 wrote in message
news:9th825.3...@marvin.gpp.despammed.com...


Newsgroup: it.comp.lang.c++
Titolo: [?] Invocare una funzione di un server OLE?

Salve, mi aiutate a risolvere questo problema?
    Vorrei automatizzare l'uso di un programma di win9x, cioé preparare i
dati con un altro programmino e poi sottomettrli al primo.
    Il primo programma non l'ho scritto io, ho solo l'eseguibile ma nella
documentazione c'è scritto che è possibile usarlo come server OLE  e ci sono
le dichiarazioni delle funzioni che è possibile invocare.
    Io conosco un po' di C++, ma non so niente di OLE e WIN32. Come faccio a
invocare le funzioni del server OLE dal piccolo programmino che mi accingo a
scrivere? Come faccio a passare i parametri? (ho letto qualcosa su un tipo
VARIANT, ma mi servirebbe qualche dritta)
    Grazie a chiunque saprà e vorrà rispondermi. Ciao
                    Paolo

Ok, scusate, non sapevo di essere OT.

Newsgroup: it.comp.lang.c++
Titolo: Inziare a programmare in C++: dove...

Dove posso trovare esempi di programmi e codici sorgenti C++ per il
compilatore GNU C++ per DOS? Da quale sito posso trovare lezioni di
C++ da scaricare facilmente?
Ciao!
Vi ringrazio in anticipo.

C++ da scaricare facilmente?
www.mindview.net
www.programmazione.it
 (su cui trovi le FAQ di questo gruppo, leggile)
Lanugo
Newsgroup: it.comp.lang.c++
Titolo: eseguire una CString

ciao a tutti,
come posso eseguire una CString:
CString strTemp="SetCursorPos(20,30)"
in modo tale da eseguire la funzione SetCursorPos portando il puntatore 
del mouse in (20,30) ??
grazie


non puoi ;)
Newsgroup: it.comp.lang.c++
Titolo: manuale gdb

Salve,
qualcuno di voi sa dove posso trovare un manuale o simili per il gdb o
altri debugger che lo interfacciano (xxgb, ddd, ecc.)
Praticamente dovrei debuggare e non proprio come fare
Grazie e buon lavoro a tutti
dalia

 dalia
Ciao
Roberto
___
http://space.tin.it/computer/rgerola

Newsgroup: it.comp.lang.c++
Titolo: Manipolazioni File Di Testo in C++: helpmeeeeeeeeeeeeee!!!!!!!!!!!!!!!!!!!!!

Ciao, sapreste dirmi qual'è la libreria x la manipolazione di files di txt?
(è davvero importante!!!!!!)
e sapreste indicarmi quali funz. chiamare, anzi, meglio: un tutorial che
spieghi l'argomento (in italiano, possibilmente)..
ciao ancora, dan

 ha scritto nel messaggio
news:WQgb8.3138$eD3.1...@twister1.libero.it...


Newsgroup: it.comp.lang.c++
Titolo: generare un segnale ttl

Salve,
Devo generare in linguaggio C++ un segnale TTL di cui posso modificare
il duty cycle(tempo in cui il segnale è attivo / periodo del segnale),
nessuno mi puo dare una dritta?
grazie
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

 grazie
basta fare qualche out sulla porta dell'usart che spara poi in memoria
il duty.
da lě leggi e imposti l'attuatore.
--
c.

Newsgroup: it.comp.lang.c++
Titolo: icona eseguibile

con il compilatore dev č possibile associare un'cona all'eseguibile creato?
Grazie
Ciao Corti

 con il compilatore dev è possibile associare un'cona all'eseguibile creato?
E' altamente Off Topic, cmq si dalle opzioni di progetto.
Valerio

Newsgroup: it.comp.lang.c++
Titolo: C++ & API windows

Salve,HO iniziato da poco la programmazione delle api di windows con C++ e
mi sono subito imbattuto in un problema.
quando creo il file .rc come faccio a far leggere al programma principale
questo file?
lo include con #include "file.rc" o altro?
Ps:uso il compilatore LccWin32
grazie.

 ha scritto nel messaggio
news:Iwtm8.55794$1S3.1...@twister1.libero.it...

Sei OT in questo NG, cmq prova a dare un'occhiata a questa serie di
articoli:
http://aleax.supereva.it/TutWin32/index.htm
Il linguaggio di riferimento è il C, ma per quello che vuoi sapere va bene
lo stesso.
Ciao,
Cecco

se si parla di C++ non vedo x' sono OT,cmq ho letto quegli articoli,x questo
ho fatto la domanda:P

ho fatto la domanda:P
Prova a fare la domanda su it.comp.programmare.win32.
-- 
Marco Barisione (ICQ 84277092)
Newsgroup: it.comp.lang.c++
Titolo: template, che erano costoro?

Ciao a tutti. Che cosa sono i template, e a che servono?
--
Riccardo
scozz...@iol.it
http://www.Geocities.com
\CollegePark\Quad\9526
scozz...@geocities.com

Ciao a tutti. Che cosa sono i template, e a che servono?
I template sono un modo di scrivere funzioni e classi
parametrizzate su tipi e costanti, e servono a scrivere
funzioni e classi parametrizzate su tipi e costanti:-).
Alex
Newsgroup: it.comp.lang.c++
Titolo: trim con isspace e reverse_iterator

#include<algorithm>
#include<string>
#include<cctype>
#include<iostream>
using namespace std;
struct here_isspace : public unary_function<char,bool> {
    bool operator()(char c) {
	return isspace(c);	
    }
};
main()
{
	string s("\t embeh?  \n");
	string::iterator a =
	    find_if(s.begin(), s.end(), here_isspace() );
	string::reverse_iterator b =
	    find_if( s.rbegin(), s.rend(), here_isspace() );
	string t( a, b );
}
E` una funzione di trim di una string, ma a differenza di quelle
consigliate in giro, usa std::isspace invece di " \t\n".
Ho tentato questa soluzione con find_if, ma mi sono arrestato con gli
iteratori, nel senso che non posso costruire (giustamente) una string
con in iterator ed un reverse_iterator, ma solo con due iterator, in
questo caso InputIterator.
Qualcuno potrebbe darmi una mano? Spero il codice sia autoesplicativo.
Sto studiando le STL, Grazie.
-- 
a/l/e/f/

[...]
Mi rispondo da solo (accidenti alla fretta!):
 
http://lists.boost.org/MailArchives/boost/msg37460.php
Cmq a e b dovevano ancora essere spostati di una unitą rispetto al
risultato, che č il punto in cui isspace torna true.
Grazie comunque
Saluti
-- 
a/l/e/f/
Newsgroup: it.comp.lang.c++
Titolo: domanda su atoi()

Qualcuno mi sa dire in caso di errore come faccio a sapere se il valore di
ritorno di tale funzione č per l'appunto errato?
grazie mille
--
Bruno

 Bruno
In caso di insuccesso atoi() ritorna zero
HTH

ritorno di tale funzione è per l'appunto errato?
Usa qualcosa di piu' controllabile, come strtol()
HTH
Andrea
--
Andrea Griffini, Programmer
http://www.netservers.com/~agriff

 In caso di insuccesso atoi() ritorna zero
Bzzzzt, errore.  A norma ISO/IEC 9899:1999 e ISO/IEC 9899:1990
(nonche' POSIX), atoi si ferma al primo carattere non legale per un
intero e non ha nessun meccanismo particolare da seguire in caso di
errore.
-- 
Maurizio Loreti                         
http://www.pd.infn.it/~loreti/mlo.html
Univ. of Padova, Dept. of Physics - Padova, Italy            
lor...@pd.infn.it
Q: Why do programmers always mix up Christmas and Halloween?
A: Because 25 Dec = 31 Oct

In caso di insuccesso atoi() ritorna zero
Si??? E se la stringa è '0'? Come differenzi il fattaccio???
Luc.

 Usa qualcosa di piu' controllabile, come strtol()
O, se vuoi una soluzione "pura" C++ senza sporcarti le mani con
residui di C (che sono difficilissimi da smacchiare via :-)
    #include <sstream>
    char inbuf[] = "42";            // String da interpretare
    char c;
    int i;
    std::istringstream is(inbuf);
    is >> i;
    if (is.fail()   ||   ((c = is.peek()) != EOF   &&   c != ' ')) {
      // Errore nell'interpretazione di inbuf
    } else {
      // Tutto OK


 A: Because 25 Dec = 31 Oct
hahahahhahahahahaha, mitika :)))
Bruno

 Usa qualcosa di piu' controllabile, come strtol()
Grazie per il suggerimento :)
Dato che sul manuale che uso io non sono elencate molte delle funzioni che
mi vengono suggerite, esiste online un elenco completo dei prototipi di
tutte le funzioni incluse nella libreria standard del C++ ?
Bruno


residui di C (che sono difficilissimi da smacchiare via :-)
non sono molto d'accordo. In questo caso gli stringstream non mi
sembrano validi sostituti di strtol(), soprattutto in fatto di
prestazioni: d'altronde, se c'č la libreria del C, non č mica un
crimine usarla, no?
Anto
PS la mia č una constatazione "a naso": non ho fatto test per vedere
se gli stringstream sono effettivamente piů lenti di strtol(), ma se
non lo fossero sarei piacevolmente sorpreso.
--
Antonio Cuni, 19 anni, studente
Brainbench C++ Master: 4.6, higher than 98% of all previous test takers.
C Language: 3.32, higher than 79% of all previous test takers.
Guida C/C++ di Programmazione.it: 
http://cpp.programmazione.it
Newsgroup: it.comp.lang.c++
Titolo: boost::multi_array membro di classe

Sto cercando di utilizzare un multi_array (a 2 dimensioni) della
libreria boost, dichiarato come membro privato di una mia classe.
Dopo la dichiarazione dovrei specificare il numero di elementi per ogni
dimensione nel costruttore della classe.
Ma la cosa non funziona (come l'ho scritta).
#include <iostream>
#include "boost/multi_array.hpp"
using namespace std;
typedef boost::multi_array<int, 2> tabella;
class X
{
public:
    X();
    ~X(){};
    // metodi vari ...
    void do_something();
private:
     tabella table;  
     boost::array<tabella::index, 2> dims;
 
};
X::X()
{
    dims = {{3, 5}};   
    table(dims);
}
int main()
{
  X x;
 
  x.do_something();
 
  system("PAUSE");	
  return 0;
}
Grazie.
Sergio.
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Sergio Ferrari wrote:
|     dims = {{3, 5}};
dims[0] = 3; dims[1] = 5;
Gaetano
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.5 (MingW32)
Comment: Using GnuPG with Thunderbird - 
http://enigmail.mozdev.org
iD8DBQFBXcdN7UpzwH2SGd4RAuTGAJ9tpaGj3M4rtZN0iajKr7T1Jg1csQCfb0OH
8hce3VfwBcbgz5CEkWFJVJk=
=hV2J
-----END PGP SIGNATURE-----

Newsgroup: it.comp.lang.c++
Titolo: Corso C++

Salve a tutti.
Vi chiedo un aiuto: sto cercando un sito Internet in cui trattino
nozioni elementari sul C++.
Grazie.
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

nozioni elementari sul C++.
http://cpp.programmazione.it
--
Lawrence "Rhymes" Oluyede
rhy...@myself.com

Newsgroup: it.comp.lang.c++
Titolo: si ma la grafica?

Salve,
ho iniziato da poco col C++ (vengo da javascript e asp..) e non ho ancora
capito come si arriva a fare la parte grafica di un programma, interagire
col mouse ecc....
Se non ho capito male questo argomento non fa parte della libreria standard
del C++.
Come si fa dunque??
Un saluto e grazie.

 ha scritto nel messaggio
news:L%qQ8.43535$Kt3.1...@twister2.libero.it...

Infatti la grafica non fa parte del C++ (questo linguaggio deve essere
potenzialmente portabile anche su piattaforme prive di grafica). Devi usare
gli strumenti messi a disposizione dal tuo sistema operativo. Se usi
Windows, chiedi info su it.comp.programmare.win32.
Marco

Newsgroup: it.comp.lang.c++
Titolo: Un sito con manuali sul C++?

Qualcuno sa indicarmi qualche sito dove posso trovare una guida in
italiano per il Visual C++ e il C++ normale? Vi prego...

...


italiano per il Visual C++ e il C++ normale? Vi prego...
Per il C++
http://www.geocities.com/SiliconValley/Foothills/6336
 
Attenzione e` stata realizzata prima dello standard, i concetti generali restano validi, ma
diverse cose, benche` ancora supportate da diversi compilatori, non sono corrette
rispetto allo standard.
Sto seriamente meditando di aggiornarla, ma al momento non ho molto tempo disponibile.
Paolo
----------------------------------------------------------
  Paolo Marotta
  Computer Science, University of Pisa
  home:   
http://www.cli.di.unipi.it/~marotta
  e-mail: 
mar...@cli.di.unipi.it
 
----------------------------------------------------------
Newsgroup: it.comp.lang.c++
Titolo: iosteam.h

Salve a tutti!
Sono nuovo di questo ng e anche di c++,
mi sono scaricato un manuale online, un compilatore
ed ho provato gli esempi... Errore! Non trova il file
iosteam.h, che sembra essere indispensabile nella
maggior parte degli esempi... Qualcuno di voi
potrebbe essere così gentile da inviarmi il suddetto file?
Ringrazio tutti in anticipo.
La mia e-mail è: 
gabr...@galactica.it
---------------------------------------------------------
             ASSA
http://assatarram.yohoo.it
Bookmark download:
http://www.redangel.it/beta_zone/Click_p.asp?ID_P=19
Napster: Assatarram3
---------------------------------------------------------

maggior parte degli esempi...
Ciao Assa,
prova a cercare il file iostream.h invece, ti sei mangiato la erre.
Maurus

 prova a cercare il file iostream.h invece, ti sei mangiato la erre.
ops...
non so nemmeno come diavolo ho fatto, visto che
quel codice l'ha scritto il compilatore... vabbè, comunque
grazie mille!
