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

mi sento orribilmente stupida a porre questa domanda, perchè in altri
linguaggi è una cosa abbastanza banale.
In C++ ancora non sono riuscita a converire una std::string in un int!!!
esiste un modo, mi va bene anche astruso, per fare questa operazione??
		grazie a tutti 
			Veruska

In C++ ancora non sono riuscita a converire una std::string in un int!!!
Beh, c'è strtol che converte uno string in long.
-- 
Ciao
DGP85
http://daps.cjb.net/

 Beh, c'è strtol che converte uno string in long.
Accetta un const char*, quindi, partendo da una std::string, bisogna
usare il membro c_str() di quest'ultima.
Alternativamente, ci sono le std::istringstream che si ottengono con
#include <sstream>; se ne puo` costruire una sulla std::string che si
ha in mano e con >> estrarne l'intero.  Ma se e` proprio solo per
un intero, strtol forse e` piu` pratica!
Alex

esiste un modo, mi va bene anche astruso, per fare questa operazione??
Non so se ne esista uno per passare direttamente da std::string
a long int, al limite puoi sempre utilizzare le funzioni di libreria
C:
std::string UnNumero="12345";
long int a = atoi(UnNumero.c_str());
Nota che "atoi" restituisce un int e non un long.
Se la cosa puo` essere un problema dovresti utilizzare
qualcosa di meno standard.
Ora che ci penso, una soluzione piu` OO in stile C++
(e che non ho il tempo di provare) consiste nell'utilizzare
std::stringstream:
std::stringstream Stream(UnNumero);
long int a;
Stream >> a;
Ripeto, non l'ho provata e non so se sia corretta.
Paolo

Nota che "atoi" restituisce un int e non un long.
Su BCB3 c'è sempre atol....


Su BCB3 c'è sempre atol....
Lo standard prevede strtol() e strtoul().
--
Andrea Laforgia (
andrea_...@bigfoot.com
)
---------------------------------------------
#exclude <windows.h>

Lo standard prevede strtol() e strtoul().
Ci sono anche quelli, ma visto che Paolo parlava di atoi, si può usare
anche atol. Di fatto io non me la cavo molto bene con queste funzioni,
preferisco usare AnsiString su Borland e char * se uso C++
standard....


Su BCB3 c'è sempre atol....
Mi pare non sia standard...
Paolo

Lo standard prevede strtol() e strtoul().
Hai ragione, con la fretta non le avevo viste.
Paolo

Mi pare non sia standard...
Infatti ho detto su BCB3 ;-)

Newsgroup: it.comp.lang.c++
Titolo: Aiuto per stampare codici a barre

partendo da zero avrei bisogno di aiuto per stampare i codici a barre nel
formato più diffuso,
ho già la pocedura per il calcolo del numero corrispondente, ma stò cercando
(non sò se si fà cosi !!) il font per stampare il codice .
mario banchi

...

Newsgroup: it.comp.lang.c++
Titolo: come prendere l'i-esimo bit da un intero?

vorrei prendere l'i-esimo bit in un intero: come fare
ad esempio: vorrei il terzo bit:
integer: 10100110
bit:1    (10[1]00110)
grazie in anticipo, Mario.

 bit:1    (10[1]00110)
Quello non e' il _terzo_ bit, ma il _quinto_.  Prova con &040 .
-- 
Maurizio Loreti                         
http://www.pd.infn.it/~loreti/mlo.html
Univ. of Padova, Dept. of Physics - Padova, Italy            
lor...@pd.infn.it
The instructions said to use Windows 98 or better - so I installed FreeBSD.
Newsgroup: it.comp.lang.c++
Titolo: programma da 32MB a 3MB

Sto sviluppando un programma (un db non troppo pesante, almeno credo) con
RHide su un computer con 32MB (P6 133MHz) per poi farlo girare su uno da 3Mb
(486sx): oggi ho tentato di farlo girare (non completo) su quello piccolo ma
mi da' un mega errore del tipo:
Exitin signal due to SIGSEV .... e poi giu' a elencare robe incomprensibili,
da che cosa puo' dipendere?
        Grazie
                Martino

                Martino
Da un sacco di cose... pero' da non trascurare e' la differenza di
memoria disponibile. Hai verificato che non ci sia qualche
allocazione che fallisce per mancanza di memoria ? Io normalmente
in C uso un wrapper per malloc() che termina il programma
brutalmente ma in modo chiaro con "out of memory" nel caso
che non ci sia memoria sufficiente... sempre meglio che lavorare
con puntatori NULL e accorgersi dei danni in seguito.
Andrea
--
Andrea Griffini, Programmer
http://www.netservers.com/~agriff

 con puntatori NULL e accorgersi dei danni in seguito.
In teoria ti basta mettere un try/catch nel main e catturare l'eccezione
bad_alloc.
--
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

 bad_alloc.
In C? ;-)
EMG

 wrote in message
news:3AED7AD0...@flashnet.it...

Ops! Giusto! Ma non siamo su i.c.c++? Se il programma portato sulla macchina con
poca memoria e' scritto in C++ (e credo lo sia se la domanda e' stata posta qui)
il dubbio sull'out-of-memory lo risolvi con una catch globale nel main (che e'
comunque una buona cosa!).

Newsgroup: it.comp.lang.c++
Titolo: map<> e iteratori

Come faccio a togliere da una map<...> tutti gli elementi che soddisfano 
una certa condizione?
E.

 una certa condizione?
http://www.cppreference.com/cppalgorithm/remove_if.html

 una certa condizione?
...mi sembra di capire che posso fare:
   bool toBeDeleted(const &S);
   void Delete(map<T,S> myMap) {
     map<T,S>::iterator f,g;
     for (f=myMap.begin();f!=myMap.end();) {
       g=f;
       ++g;
       if (toBeDeleted(f->second)) {
         myMap.erase(f);
       }
       f=g;
     }
   }
mi chiedo se è giusto assumere che l'erase invalida solamente 
l'iteratore f e non l'iteratore g. Questo non sarebbe vero su un 
vector<...>, ad esempio.
Mi chiedo anche se ci sia un metodo per ottenere l'iteratore successivo 
ad un iteratore dato (per sostituire g=f, g++ con un unico comando).
E.

 ad un iteratore dato (per sostituire g=f, g++ con un unico comando).
Io riscriverei la tua funzione cosě:
 template< class ContainerT, typename PredT >
  void erase_if( ContainerT& c, PredT pred )
  {
   typename ContainerT::iterator i = c.begin();
   while( i != c.end() )
   {
        typename ContainerT::iterator ci = i++;
        if( pred(*ci) ) c.erase(ci);
   }
  }
  erase_if( m, toBeDeleted );
Max


No, remove_if funziona solo con sequenze "mutabili". Gli elementi rimossi
vengono spostati in coda. Il value_type dell'iteratore deve perciň
essere "assegnabile", cosa che non vale per il value_type di map, che č un
pair<const K,V> (nota il 'const').
Max


Grazie! Sto cercando di utilizzare quella funzione, ma non riesco 
neanche a compilare:
bool predicate(const pair<int,string> &p) {
   return (p.first)%2==0;
}
void test() {
   map<int,string> map;
   map[3]="pippo";
   map[4]="pluto";
   map[7]="paperino";
   remove_if(map.begin(),map.end(),&predicate);
}
mi dà l'errore
1076 C:\Dev-Cpp\include\c++\3.4.2\bits\stl_algo.h non-static const 
member `const int std::pair<const int, std::string>::first', can't use 
default assignment operator
E.

 Io riscriverei la tua funzione cosě:
Sě, č piů elegante. Peroň mi sembra strano che gli iteratori non abbiano 
una funzione next() per ottenere l'elemento successivo.
E.


Ah, ecco... questo spiega l'errore criptico segnalato dal compilatore!
E.

 Non credo che valga per i vector<> che sono implementati come array.
Certo. Infatti io parlavo dei "container associativi" (cioč map, multimap,
set e multiset).
Max


Ah, mi ero perso l'aggettivo.
Grazie ancora, ho risolto la questione col codice che mi hai suggerito.
E.

No, remove_if funziona solo con sequenze "mutabili".
...ops... sorry per l'imprecisione!
Newsgroup: it.comp.lang.c++
Titolo: Ciclo infinito esatto?

Salve, ho provato a ritoccare il frammento di codice. Ora si puo' compilare ?
Ho provato a farlo ma il compilatore VC++ mi dice error.
#include <iostream>
using namespace std;
int main() {
  int val;
  int nums;
  val = 10000;
  nums = &val;
  nums = *val;
 
  for(;;) {
    cout << val << " \n";
  }
  if(nums!=val) {
      cout << nums << " \n";
   }
return 0;
}

 Ho provato a farlo ma il compilatore VC++ mi dice error.
E ha ragione.
Studia prima da qualche guida se no non impari mai.
Ciao

 }
Devi leggere qualche tutorial e imparare bene le basi del linguaggio 
altrimenti e' difficile aiutarti.
Spero ti sia di aiuto
==
Gianni

Newsgroup: it.comp.lang.c++
Titolo: COMPRO BORLAND C++ BUILDER 4

Salve
Sto cercando il Borland C++ Builder 4 in edizione Professional
o meglio Enterprise ma comunque Integrale.
Fatemi avere in e-mail le vostre offerte all'indirizzo
lanc...@freemail.it
Grazie

 o meglio Enterprise ma comunque Integrale.
AAAAAAAAAAAAAaaaaahahahahahahahahahhahahahahhaahhahahahahahaha
mi sono perso qualcosa? Cos'è, insieme al BCB 4 ti danno anche la tuta del
comandante Kirk? e il dottor Spok?
Forse ti riferivi all'Imprise..bah!



mi dispiace dirtelo ma del BCB4 dell'Inprise ne esistono 3
configurazioni, tra le quali la più completa è proprio
l'Enterprise....

 wrote in message 7v4l4p$20f$4...@nslave1.tin.it...


 l'Enterprise....
Da bon? Ueeepss....sto invecchiando

 Ciao
errore di digitazione, sorry
Newsgroup: it.comp.lang.c++
Titolo: Service Pack 3

Uso VC++5.0 in Win95, ho il service pack 3 per DevStudio ed ora ho questi
due problemi:
1) Ricompilando i vecchi progetti ottengo un errore sui precompiled header,
occorre per forza
 ricompilare TUTTO il progetto, e fin qui poco male, consideriamo risolto il
problema.
2) Creando un nuovo progetto EXE con MFC, senza modificare alcun settaggio
standard, in fase di linking ottengo
il seguente warning: "LINK : warning LNK4089: all references to
"comdlg32.dll" discarded by /OPT:REF"
mi piacerebbe eliminarlo ma non so proprio dove andare a parare ??? Qualche
idea
CIAO e grazie anticipatamente
--
==================
  Fabio  BANFI
  _/_/_/  _/_/_/
  _/       _/     _/
  _/_/    _/_/_/
  _/      _/     _/
  _/      _/_/_/
 
fab...@login.it
  ICQ: 4982470
==================

idea
Non riesco a riprodurre il tuo problema (sei sicuro che ti venga da un
progetto
EXE MFC con tutti i settaggi standard e non editato???), comunque qui il
linker ti sta avvertendo che avendo eliminato (per ottimizzazione) tutti i
riferimenti
alla libreria comdlg32.dll (presumibilmente richiesti tramite comdlg32.lib),
la
libreria stessa non e` piu` automaticamente caricata.
Se tu vuoi comunque forzarne il caricamento (presumibilmente per esigenze
particolari, ad esempio usare GetProcAddress su di essa) puoi ad esempio
togliere le ottimizzazioni del linker -- basta mettere /OPT:NOREF sulla
linea
di comando del linker (Project/Settings/Link, edita direttamente la textbox
Project Options); a prezzo, naturalmente, di un eseguibile piu` grande.
Se quella libreria in effetti non ti serve, toglila dal link.  Se non e`
elencata
esplicitamente in Project/Setting/Link/Input, vorra` dire che viene su come
libreria di default -- quindi per toglierla tu elencala in
Project/Settings/Link/
Ignore Libraries.
Facci sapere se questo ti risolve la questione...!
Alex

idea
Il linker ti avverte solo che ha eliminato per ottimizzazione tutti i
riferimenti alla libreria commdlg32.dll che quindi non verra'
caricata. Non e' quindi nulla di grave, e' normale se non usi nessuna
common dialog. Se proprio non lo vuoi vedere aggiungi al linker
l'opzione /OPT:NOREF oppure usa una common dialog cosi' il linker e'
contento. La libreria commdlg32 e' compresa tra quelle di default e
non credo che sia disabilitabile singolarmente.
Gianpaolo Bottin
- Live Long and Prosper -

Facci sapere se questo ti risolve la questione...!
Infatti mettendo il settaggio suggerito si risolve la cosa.
Grazie dell'interessamento (un grazie naturalmente anche a GianPaolo)
CIAOAIC


Infatti mettendo il settaggio suggerito si risolve la cosa.
Attento -- non e` "suggerito", e` una deliberata de-ottimizzazione.  Il
tuo eseguibile e` cosi` probabilmente di qualche Kbyte piu` grosso
di quanto non potrebbe essere... al giorno d'oggi non fa impressione,
lo so... comunque, io seguirei l'altra strada, quella di escludere dal
link la libreria dei common dialog.
Alex
Newsgroup: it.comp.lang.c++
Titolo: delay in VC++ come aspettare che.....

Sto usando il VC++ 6 e ho la necessità di attendere dei periodi di tempo
stabiliti tra alcune operazioni. Tali periodi sono misurati in millisecondi.
Qualcuno conosce qualche funzione o qualche modo per attendere tali delay ?
Grazie
Anselmo
--
Posted from 
mta13-acc.tin.it
 [212.216.176.44]
via Mailgate.ORG Server - 
http://www.mailgate.org

 Qualcuno conosce qualche funzione o qualche modo per attendere tali delay
?
La problematica e` strettamente attinente alla piattaforma (Windows
a 32 bit), non al linguaggio C++ in quanto tale (indipendente dalla
piattaforma), quindi chiedi piuttosto in it.comp.programmare.win32;
saro` felice di aiutarti se posterai sul gruppo giusto, ma non qui.
Alex

 Qualcuno conosce qualche funzione o qualche modo per attendere tali delay ?


Da vero principiante mi accingo a studiare il VC++.
Dal libro in oggetto
(edizione Tecniche Nuove 1999 , espressamente dedicato al VC++ 6)
tento di compilare il seguente codice sorgente come dal "primo" esempio
contenuto nel libro:
// Esempio " Hello World"
#include <iostream>
using namespace std;
int main()
{
    cout <<"Hello World!" << end1
    return 0:
}
Non dovrebbero esserci errori invece:
"c:\Programmi\Microsoft Visual Studio\MyProjects\hello\hello.cpp(6) : error
C2065: 'end1' : undeclared identifier"
Error executing cl.exe.
Premesso che "il livello è basso" ,come diceva Catalano, mi scuso con i +
esperti e chiedo umilmente se qualcuno mi può aiutare?
Fabio Manganelli
Fam...@tin.it

     return 0:
              ^
Deve essere un punto e virgola.
Se non sei tu ad aver trascritto male, ma e' il libro a contenere gli
errori buttalo via.
Ciao,
Nicola






Ciao e buon anno;
Fausto

Fabio,
e' la seconda o terza volta che invii la stessa domanda, alla quale ti
e' gia' stato risposto piu' volte. Non e' che hai dei problemi di mail?
Ciao,
Nicola



No,no, é la quinta volta.Le ho contate!!!
Il Ghenio

 
Non mi vorrei sbagliare ma hai scritto endl con l'ultima lettera uno
metre ldeve essere l (elle)
a parte la punteggiatura.
ciao

Newsgroup: it.comp.lang.c++
Titolo: VC++ vorrei iniziare ad impararlo cosa mi consigliate ?

Vorrei iniziare ad imparare a programmare inVC++ e a tal proposito vorrei
qualche consiglio sui testi da utilizzare. Faccio presente che sono un
neofita in assoluto, insomma per farla breve devo partire da zero.
Grazie,
Erminio
e-mail: 
erm...@vipnet.it

 wrote in message 84o6nk$3e3$1...@serv1.iunet.it...

Newsgroup: it.comp.lang.c++
Titolo: Passaggio N parametri

Ciao, un dubbio
se io ho una funzione fatta cosě
void funzione(int a, int b, ...)
gli posso passare da 2 a n parametri.... giusto?
supponiamo  funzione(5,6,3)
ma come farň a fare riferimento ai parametri successivi al secondo? (in
questo caso dove mi trovo il 3?
e di che tipo saranno? (immagino che assumano il tipo della variabile
passata)
grazie

 (immagino che assumano il tipo della variabile passata)
sono del tipo passato in teoria, ma attenzione che in qualche modo devi
saperlo...
nel caso della printf ad esempio e' la stringa che dice il tipo:
printf("%d",8);
printf("%f",8.0f);
etc...
quindi se vedi %d tratterai la var come int, se vedi %f come float etc...
se non stai attento possono succedere casini.
in alcuni  casi potresti dare per scontato che sia sempre di un certo tipo,
ma attento ai bugs, specialmente se lavorate in piu' di uno al progetto ;-)
Inoltre ricordati di passare quanti sono le var da leggere... ad esempio un
printf con:
"%d %d %d" leggera' 3 vars.
nel tuo caso potresti avere:
funzione(int num_vargs,  ...)
e poi
funzione(3, 1, 2, 3);
dove il primo dice che ci saranno 3 valori passati....
Per finire in bellezza ti dico che in C++ andrebbero evitati queste cose....
il C++ offre strumenti molto piu' puliti e meno bug-prone.... Quindi se e'
per pratica bene, se e' per un progetto seriio, evita!
Tommy

 quindi se vedi %d tratterai la var come int, se vedi %f come float etc...
No! Valgono le promozioni standard. In particolare un float passato come
vararg viene sempre promosso a double. Le promozioni intere sono più
complicate, ma comunque in linea di massima viene tutto (char e bool
compresi) convertito al più appropriato tra int, unsigned int, long o
unsigned long.

 No! Valgono le promozioni standard.
io non ho detto il contrario, ho detto che se c'e' %f il valore verra'
trattato come float, anche se forse avrei dovuto dire "double precision
floating point value".
se c'e' %d come intero. Poi valgono le regole standard di promozione.
Capisco che il mio discorso puo' essere frainteso, come hai fatto tu del
resto, quindi la tua precisazione e' utile a togliere questa debolezza del
mio discorso poco formale.
Intendevo dire che:
printf("%f %f %f", 8, 8, 8);
e' un errore, passi un int e poi leggi dei floating point... non ci si puo'
lamentare se il programma crasha.
Anche:
printf("%d %d %d", 8.0, 8.0, 8.0);
e' un errore, passi tre doubles e poi leggi tre ints....
Invece,
printf("%f %f %f", 8.0, 8.0, 8.0);
non e' un errore in quanto abbiamo passato valori e leggiamo un tipo
appropriato.
Lo stesso vale per:
printf("%d %d %d", 8, 8, 8);
Tommy

 per pratica bene, se e' per un progetto seriio, evita!
Concordo, non c'è mai una reale necessità di usare questo approccio in C++,
anche se in alcuni casi può sembrare comodo.
Va comunque bene la curiosità e l'approfondimento di un argomento.

 ha scritto nel messaggio
news:c791te$esq$1...@lacerta.tiscalinet.it...

ho provato funziona....
č una routine che scrive su un file di log...  a cui vengono passati dei
parametri da scrivere sul file..... non mi sembra che dia problemi
grazie a tutti.
Newsgroup: it.comp.lang.c++
Titolo: Ambienti di sviluppo free.

Esiste qualche ambiente di sviluppo visuale free? (tipo il c++ builder)
Mi va bene anche qualcosa che sia limitato per uso accademico (Mi serve 
per una tesina).
Grazie in anticipo per le risp.

http://www.bloodshed.net/devcpp.html
www.mingw.org
UltraSnake ha scritto:



Scusate forse mi sono espresso male .. intendevo qualcosa che faccia 
creare le fineste in modo visuale (cliccando e/o trascinando) dato che 
non mi va di scrivere tutto a mano.

 non mi va di scrivere tutto a mano.
Mi sa solo il C++Builder... cmq la versione 3.0 è gratuita da diversi 
anni. Vetusta, ma gratuita. Devi solo trovarla in giro :-)
Pure il VC++ ti fa creare dialog, finestre e menu visualmente, ma poi 
devi "collegarle a mano" al codice. IMHO non è quello che si intende per 
"visuale"...

Massimo Soricetti ha scritto:

Io vi dirò che per interfacce piccole.... con un normale editor di 
risorse ed usando le dialog mi trovo molto bene .... anche se so che è 
OT perchè in genere per tali interfacce uso il C.... non è la stessa 
cosa ma per cose semplici mi trovo molto bene

 non mi va di scrivere tutto a mano.
Ti hanno suggerito male...
wx-Devcpp è quello che cerchi tu.
Crea visualmente le GUI servendosi di wxWidgets e compila tutto con mingw.
E' in versione beta, ma sembra funzionare abbastanza bene (però non ho 
mai creato GUI)

AlterX ha scritto:

Io le ho usate.... sinceramente per la parte grafica preferivo visualwx

 anni. Vetusta, ma gratuita. Devi solo trovarla in giro :-)
No no...
Esiste anche wxDevCpp e VisualC++Express2005.
Bye,
-- 
Carmine ( 
pikachu...@gmail.com
 (Togli la scritta NOSPAM) )
Webmaster di The Total Site 4 : 
http://www.thetotalsite.it
MariokartDS Codice Amico: 532639027909 - CarmineC in MarioKartDS
"Un problema non è un problema se può essere risolto"

Newsgroup: it.comp.lang.c++
Titolo: AIUTOO...bmp

Come posso visualizzare un immagine BMP con il BORLAND C++ 3.0 per un
programma in ambiente DOS?
rispondetemi possibilmente in privato 
                                         GRAZIE



Senza dubbio, ma non senza l'ausilio di una libreria di terze parti per il
caricamento e la visualizzazione dei pixel, o di routine equivalenti
scritte da te.
Esiste un modo immediato? No.
Davide Marcato.
----------------------------------------------------
| -- Freelance International Consultant
| -- Win32/MFC/COM Development & Training
| -- Technical Writer & Speaker
----------------------------------------------------
| -- Email: 
mar...@programmers.net
| -- Web: 
http://www.DavideMarcato.com
----------------------------------------------------
Newsgroup: it.comp.lang.c++
Titolo: Aiuto...

Scusate se rompo i cosidetti con una domanda che vi avranno fatto in 350000
ma vorrei chiedervi dove posso trovare un tutorial per VISUAL e dico VISUAL
C++. 
Grazie a chiunque mi sappia rispondere...

...


 C++.
Nell'help stesso (o nel MSDN) c'č tutto ciň che ti serve, tutorial compresi
----
Giovanni Bajo
Lead Programmer
Prograph Research S.r.l.
http://www.prograph.it

C++. 
Beh, su MSDN della Microsoft (
http://msnd.eu.microsoft.com
).
Trattandosi, però, di un argomento specifico della piattaforma Win32
dovresti portarti su it.comp.programmare.win32, ma anche su
microsoft.public.it.tools sul server nntp://msnews.microsoft.com...
--
Diego "DGP85" Pettenò
daps...@nightmail.com

Newsgroup: it.comp.lang.c++
Titolo: Concatenazione di liste

Ciao a tutti, ho un problema di tipo concettuale: ho due classi, una classe
Lista che fa da container per oggetti della classe NodoLista, la quale e' di
tipo ricorsivo (classica struttura di tipo lista, con un puntatore di tipo
NodoLista). Le due classi sono asociate per composizione, la classe
NodoLista e' friend di Lista.
Se istanzio due oggetti di tipo Lista, supponiamo ListaA e ListaB..... come
faccio a creare un'unica lista che sia la concatenazione di ListaA e B?
Cioe' listaB dovrebbe essere accodata a ListaA.
Inoltre non ho ben capito l'uso dell'operatore freccia (->) nelle classi, ad
esempio cosa significa questo assegnamento:
firstPtr->nextPtr = firstPtr
Tutto quello che ho scritto e' stato estrapolato da libro C++ Tecniche
Avanzate di Deitel&Deitel.
Grazie a tutti.
--
           \\\ ///
            (ô ô)
----ooO-(_)-Ooo----     Fabio


L'operatore freccia dereferenzia automaticamente un puntatore ad un oggetto.
Quello che hai scritto prima potrebbe essere riscritto come
(*firstPtr).nextPtr=firstPtr;
--
Per l'e-mail rimuovere gli underscore a la frase in maiuscole.

Newsgroup: it.comp.lang.c++
Titolo: cos'è il builder c++??

Salve volevo sapere le differenze tra il builder c++ e il visual c++!
Grazie!

 
Premesso che dovresti postare su it.comp.programmare.win32 e che non posso 
scrivere tutto il giorno vado a riassumere in tre righe: C++ Builder è più 
facile da usare (almeno per i principianti), più flessibile, ma crea 
eseguibili più grandi.

 Grazie!
C++ Builder (Non Builder C++):
Casa Borland
Ultima versione: 6
Molto simile a Delphi, cambia solo il linguaggio (C++ invece che Object
Pascal).
Supporto ANSI completo. Ambiente di sviluppo RAD (tipo Visual BASIC).
A breve disponibile anche per Linux.
Visual C++
Casa Microsoft
Ultima versione: Managed C++ .NET (non proprio C++...)
Ultima versione NON-.NET: 6.0
Non propriamente RAD. Visualmente crei le risorse, che dovrai poi
gestire manualmente.
Nella versione 6.0 (se non erro, non ne sono sicuro!) non c'era il
supporto ai template
Solo per piattaforma Win32
Prestazioni superiori rispetto a Borland C++ Builder
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG
Newsgroup: it.comp.lang.c++
Titolo: Quando è safe e quando no chiamare una libreria esterna da un thread secondario

Ho un problema nel chiamare una libreria matematica (glpk) da un
thread secondario rispetto a quello principale.
In pratica, anche se organizzo l'accesso alla libreria in maniera
sequenziale ed utilizzando un unico thread, ho dei crash semirandom
mentre se la libreria la facci ogirare dal thread principale non ho
problemi.
Non capisco se il problema risieda nel mio codice, in un bug di glpk
(ma il maintainer mi ha risposto di no) o in un bug della libreria di
threading delle Qt.
Un micro-esempio compilabile di esempio può essere scaricato da:
http://grecof2.econ.univpm.it/~lobianco/public/qtglpk.tgz
ma il punto principale è comunque questo:
[CODE]
int main(int argc, char *argv[]){
    cout << "Test on a glpk application using Qt Threads" <<
endl<<endl;
    Thread wThread; // subclassa QThread giusto per ridefinire il
metodo run()
    for (uint y=0;y<5000;y++){
        wThread.start(); // esegue un semplice esempio chiamando la
libreria glpk
        wThread.wait();
    }
    cout <<"All done without errors (crashing)"<<endl;
    return 0;
}
[/CODE]
Chiamando wThread.start() il working thread esegue un semplice esempio
riportato nella documentazione di glpk (per la verità loopando un po'
di volte) e dopo un po' mi crasha con il seguente messaggio:
[QUOTE]
Assertion failed: xlcmp(env->t_last, t) <= 0
Error detected in file glplib10.c at line 109
[/QUOTE]
( 
http://grecof2.econ.univpm.it/~lobianco/public/glplib10.c
 )
mentre se faccio girare quest'esempio nel thread principale non ho
errori.
Dove sbaglio??


Per caso e' la libreria glpk della GNU?
C'e' una mailing list apposta:
http://www.mail-archive.com/help...@gnu.org/info.html
E pure una dove spedire i bug reports: 
bug-...@gnu.org
Penso che quelle siano meglio di questa nel rispodere ad un problema
non necessariamente specifico al C++.

Newsgroup: it.comp.lang.c++
Titolo: define e const

ciao, non riesco a capire se esiste una differenza sostanziale a livello di
velocita' di esecuzione tra una define e una costante dichiarata con
l'attributo const
quello che ho capito e' che una define e' una direttiva al preprocessore,
quindi in fase di precompilazione viene "espansa" cioe' dove e' utilizzata
questa define viene sostituito il suo valore dichiarato nella define
ma a livello di velocita' di escuzione del task cambia qualcosa???
su i manuali C non ho trovato molto, quindi lo chiedo a voi: secondo me sia
le define che le const vengono caricate, quando viene caricato il programma,
nella sezione dati generale della ram... se e' cosi' sia a livello di
dimensioni dell'eseguibile che di velocita' di esecuzione non cambia niente,
ma allora qual'e' questa differenza tra una define e una costante dichiarata
con const???
ciao e grazie in anticipo!!!

 con const???
La differenza e' che la define e' una semplice sostituzione testuale, 
mentre la costante e' un elemento vero e proprio del linguaggio. Credo 
che i casi in cui questa differenza sia importante a livello 
prestazionale siano molto, ma molto rari. Meglio dedicare il proprio 
tempo a imparare a programmare bene.
Ciao,
Nicola
Newsgroup: it.comp.lang.c++
Titolo: domanda stupida su new e costruttore

Quando si crea una istanza di una classe con new il compilatore invoca il 
costruttore o no?
Grazie Al 

costruttore o no?
...perché non provi ?
#include <iostream>
class A {
public:
  A() { std::cout << "sono il costruttore!" << std::endl; }
  void saluta() { std::cout << "ciao!" << std::endl; };
  ~A() {std::cout << "sono il distruttore!" << std::endl; }
};
int main()
{
    A* p=new A();
 
    p->saluta();
 
    delete p;     
 
    return EXIT_SUCCESS;
}
output:
sono il costruttore!
ciao!
sono il distruttore!

Grazie

Newsgroup: it.comp.lang.c++
Titolo: winsock.h

Salve a tutti,
avrei bisogno di un manuale per la programmazione di rete in linguaggio c / 
c++ sotto windows, dove si possano trovare tutte i riferimenti alle funzioni 
da utilizzare (send, bind, socket etc etc) e soprattutto spiegazioni 
dettagliate sulle funzioni di inizializzazione (WSAStartup, MAKEWORD etc 
etc). Vanno bene sia manuali gratuiti che a pagamento, sia in italiano che 
in inglese.
Grazie per l'attenzione 



msdn.microsoft.com
 
-- 
I'm using an evaluation license of nemo since 228 days.
You should really try it!
http://www.malcom-mac.com/nemo

Newsgroup: it.comp.lang.c++
Titolo: AIUTOOOOOOOOOOOOOO EMERGENZA HELP HELP

Tra due giorni dovrei sostenere un esame di informatica e mi
servirebbero uno di questi codici chi è così gentile da inviarmeli via
e-mail 
daniel...@libero.it
:
codice con multithreaded
codice con socket

, 
daniel...@libero.it
 says...

500 euro a codice. Ok? 
-- 
Luc.

 ha scritto nel messaggio
news:432599f4.03070...@posting.google.com...

Mi dispiace, ma il NG non è un repositorio di sorgenti (tra l'altro ne
esiston tantissimi in rete) da cui attingere per i tuoi esami. L'unica cosa
che può essere possibile fare è aiutarti a risolvere i problemi che incontri
scrivendo il codice, ma non quì, perchè saresti OT (si parla solo di C++
standard in questo NG).
Ti conviene rimandare l'esame e metterti a studiare. ;-)
Ciao

 Ti conviene rimandare l'esame e metterti a studiare.
SCHHHHH... Magari preferisce pagare! :))) 
-- 
Luc.

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

Qualcuno mi potrabbe consigliare una guida MFC da scaricare da internet.


Non conosco guide complete su MFC, ma posso consigliarti 
www.codeguru.com
:
ci sono centinaia di articoli su tutti gli aspetti di MFC.
    In alternativa, cerca su
http://www.iro.umontreal.ca/~ratib/code/cpp.htm
: c' e'
una interessante raccolta di siti, tra cui alcuni che trattano espressamente
di MFC.
    Ultimo consiglio. Se sei interessato a leggere dei libri(in inglese),
prova 
www.mcp.com
 alla sezione personal bookshelf: vi sono circa
200 libri da consultare. Probabilmente ne troverai qualcuno su MFC.
Spero di esserti stato di aiuto.
Ciao,
Newsgroup: it.comp.lang.c++
Titolo: leggere e scrivere lo stesso file

Premetto che non so programmare in C++, se non qualche rudimento.
Io vorrei che il codice aprisse il file, cercasse la riga che mi interessa, 
e sovrascrivesse il valore presente, o al limite l'intera riga.
    fstream file;
    memset(buf,0,512);
    file.open(nomefile, ios::out | ios::in);
    do{ file.getline(buf, 512, '\n');
    } while(!strncmp(buf, "BUDGET SPESO", 12));
    file << "BUDGET SPESO = " << budget_speso << endl;
Il problema č che non ne vuole sapere di scrivere sul file.. la ricerca 
della stringa č corretta ma di scrivere proprio non ne vuole sapere.. ho 
provato anche con ios:app, ma non cambia!!
come posso fare ?
Grazie e scusate la banalitą della domanda.
-- 
 oooO                                  Oooo
 (    )               YUS               (    )
  \   (      Para todos, todo,      )   /
   \_ )    nada para nosotros.  ( _/ 

 come posso fare ?
La risposta breve e' che si puo' sia leggere che scrivere nello stesso 
file a condizione di chiamare il metodo "seekp" prima di una sequenza di 
scritture e il metodo "seekg" prima di ogni sequenza di letture.
Se non si spostano le due posizioni correnti (di lettura e di 
scrittura), i buffer di lettura e di scrittura non si sincronizzano.
Pero' consiglio di non aprire mai un file di testo sia in lettura che in 
scrittura.
Infatti i file di testo hanno normalmente le righe di lunghezza 
variabile, e non c'e' modo di tagliare un pezzo di file.
Quindi dovresti fare in uno dei seguenti modi:
* Leggi tutto il file, e contemporaneamente ne scrivi un altro, e dopo 
che hai chiuso entrambi gli stream, elimini il primo file e dai al 
secondo file il nome del primo.
* Apri uno stream *binario* in lettura/scrittura.
Altro consiglio e' non usare i buffer di caratteri e le relative 
funzioni "memset", "strcmp", ma invece usa la classe "string" della 
libreria standard. Anche usare la classe "CString" di MFC o qualcosa del 
genere č sempre meglio che le stringhe del C.
-- 
     Carlo Milanesi
 
http://digilander.libero.it/carlmila
Newsgroup: it.comp.lang.c++
Titolo: parsing di stringhe

Uno dei problemi che devo ancora affrontare in c++ e' come fare
il parsing di una stringa. Ad esempio nel rexx c'e' la mitica
funzione parse, qyu c'e' qualcosa di specifico o semplicemente
devo lavorare con le funzioni disponibili nella classe string?
Ad esempio adesso dovrei leggere una stringa che rappresenta
un tempo, tipo 00:01:00, e leggere i numeri, dopo averli divisi
in ore minuti secondi, come interi. Devo usare ostringstream
o c'e' qualche altro metodo? A me, sara' che ho ancora la
mentalita' basata su altri linguaggi, passare per ostringstream
pare inefficiente, ma mi potrei sbagliare..
-- 
Saluti,
 Francesco Cipriani

]

Attualmente sto affrontando proprio questo problema, la
soluzione che ho adottato e` utilizzare la classe std::string.
Tramite questa ho implementato un piccolo automa che estrae
token e che poi il parser analizza.
La soluzione e` semplice e adeguata per una
grammatica con poche produzioni, nel mio caso
si tratta di informazioni numeriche strutturate tramite
liste in stile lisp.
Paolo
--------------------------------------------------
  Paolo Marotta
  Computer Science, University of Pisa
  home:   
http://www.cli.di.unipi.it/~marotta
--------------------------------------------------

token e che poi il parser analizza.
Scusa ma al momento non ho studiato cosa sia un automa quindi se
espandi un po' la spiegazione e' meglio :) (magari l'ho gia' usato
e non so che si chiama cosi').
Comunque a me serviva qualcosa di semplice, in pratica ho un
file di log delle connessioni e voglio farci qualche elaborazione
-- 
Saluti,
 Francesco Cipriani

 file di log delle connessioni e voglio farci qualche elaborazione
L'uso di regular expression (regex), come gia` ti e`
stato suggerito, e` probabilmente l'approccio piu`
pratico.
Alex

file di log delle connessioni e voglio farci qualche elaborazione
Questo dipende da come e` fatto il tuo file di log... se esso e` scritto
secondo una semplice grammatica libera da contesto (o una
sequenza di record di struttura ben definita) non e` difficile,
se e` scritto in linguaggio naturale le cose si complicano. 


 pratico.
Non parliamo Italiano, ma... it is possible to find my shareware YGrep 
Search Engine at the web site shown in my signature.
Regular Expressions (and more)
Search AND replace
C and C++ interfaces
Saluti
Yves R
-- 
Yves ROUMAZEILLES is author of the YGrep Search Engine
27-31 rue Robert de Flers    Tél: 
+33 (0)1.45.75.92.75
75015 PARIS    (FRANCE)      GSM: +33 (0)608.750.486
                             Fax: 
+33 (0)1.39.44.29.30
http://ygrep.cjb.net/
        mailto:
YG...@usa.net
http://i.am/ygrep/
           mailto:
Roumazeill...@NO.SPAM.magic.fr
http://perso.magic.fr/roumazeilles/ygrep.htm
Newsgroup: it.comp.lang.c++
Titolo: maledizione sto vector !

ho una classe (MyClass) e voglio lavorare con un vettore di suoi oggetti, ho
deciso perciň di usare (per la prima volta) il vector
//........
vector<MyClass> MyVector;
//........
come faccio ora ad inserire ad uno ad uno gli oggetti?
MyVector.push_back( ? )
o cosa?
grazie

 wrote in message
news:93imt9$al0nb$1...@ID-45091.news.dfncis.de...

Esatto, sostituendo al posto del punto interrogativo un
qualsiasi appropriato costruttore di MyClass.  Se MyClass
ha costruttori mono-argomento non explicit, puoi non
scrivere esplicitamente il costruttore stesso (non e`
detto che sia buona prassi...).
In altri termini, valgono esattamente le stesse regole
di qualsiasi altro caso di passaggio per valore di un
oggetto istanza di MyClass come argomento ad una
qualsiasi funzione.
Alex -- MVP C++ di Brainbench

Le cose si complicano: vado sul concreto
ho la classe A, il cui costruttore è
A::A(param * xx)
{   XX= new XX(...);
    XX->Assign(xx);
}
e il distruttore è:
A::~A()
{ delete XX; }
nei vari metodi di A uso XX.
Ora, voglio un vettore di A:   vector<A> vet;
volendolo riempire uso 
p.es
. il push_back
for (int i=0; i<10; i++)
            vet.push_back(A(xx1))  // è giusto così Alex, no?
il problema è che chiamando successivamente un metodo di A che utilizzi XX
vet[k].metod();
 mi da errore. Debuggando ho visto che nel ciclo for ad ogni iterazione si
passa sia dal costruttore di A che dal suo distruttore (che quindi libera
XX).  Ragionando ho pensato che ciò succede in quanto A(xx1) è "locale" al
for.
Ma a questo punto mi arrendo: cosa in realtà stò passando al push_back?
forse che si crea una copia dell'oggetto e la inserisce nel vettore (ed è
per questo che poi il delete del distrutture "immagine" mi dealloca anche lo
spazio che in realtà vorrei ancora ci fosse) ?
Ringrazio chi vorrà cimentarsi in questa incredibile impresa!! (... di farmi
capire cosa avviene in realtà)

capire cosa avviene in realtà)
la funzione passa a push_back tuo oggetto temporaneo A(xx1) come
const reference ma il metodo usa poi il costruttore di copia
per inserirlo nel vettore (probabilmente usando placement new).
Se tu non hai definito un costruttore di copia l'oggetto
in std::vector e il temporaneo stanno puntando a questo punto
agli stessi dati allocati dinamicamente.
Quando pero' push_back ritorna l'oggetto temporaneo viene
distrutto e questi dati vengono deallocati con il risultato che
l'istanza allocata nel vettore ora possiede un dangling pointer.
A parte il consiglio sempre valido di rendere corrette le
operazioni costruzione copia e di assegnazione (o impedirle)
forse nel tuo caso la logica di value degli std::vector e'
un problema. Non sarebbe meglio per te un std::vector< A* >
in modo che tutte queste copie non avvengano ?
Una alternativa sarebbe utilizzare degli smart ptr con
reference counting.
HTH
Andrea
--
Andrea Griffini, Programmer
http://www.netservers.com/~agriff

 XX).
Perché l'oggetto che stai passando a push_back è un temporaneo. La sua
copia finisce nel vector, sempre che tu abbia definito un opportuno
costruttore di copia per la classe A.
EMG
Newsgroup: it.comp.lang.c++
Titolo: ATL, Windows CE, DDK

Salve a tutti,
    come potete vedere dal titolo ho 3 questioni distinte da sottoporvi:
1) Esiste un buon libro dedicato ad ATL ??? (tipo quello di Prosies per le
MFC)
2) Dove posso trovare l'SDK per Windows CE e relativo materiale ????
3) Dove posso scaricare il DDK per NT e/o 95/98 ???
Grazie a tutti e saluti
Bruco
br...@iii.it

3) Dove posso scaricare il DDK per NT e/o 95/98 ???
MSDN Professional.
Davide Marcato.
----------------------------------------------------
| -- Freelance International Consultant
| -- Win32/MFC/COM Development & Training
| -- Technical Writer & Speaker
----------------------------------------------------
| -- Email: 
mar...@programmers.net
| -- Web: 
http://www.DavideMarcato.com
----------------------------------------------------

Newsgroup: it.comp.lang.c++
Titolo: R: Ostrega! Vcl! Non Mfc! Scusatemi 8-)

     
http://www.multimania.com/fogazzid/

La risposta è la stessa dell'altra volta: utilizza il linking statico.
Nel BcB lo trovi in project>Options>Compiler my pare, e devi togliere lo
spunto (come al vino) al Use Dynamic RTL... forse ho sbagliato qualcosa me
si trova facilmente.
L'eseguibile linkerà tutte le chiamate esterne...
Daniele Fogazzi ha scritto nel messaggio
<37d3f59a...@195.110.128.5XXnews.mclink.itX>...


Grazie.
Ora dovrebbe essere tutto a posto...
Newsgroup: it.comp.lang.c++
Titolo: Come importare file .cpp e .h in unnuovo progetto

Salve a tutti, sono un nuovo programmatore MS VC++6, provengo dal VB ed
ora che sto realizzando una DLL in C++
mi si è presentato un problema, per voi forse stupidissimo, ma per me al
momento irrisolvibile.
Ho creato una classe per fare certe operazioni, l'ho testata e funziona
perfettamente, ora mi si è posto il problema di
dover esportare questa classe, quindi il file .cpp ed il file .h in un
nuovo progetto. Ho quindi aggiunto i due
file rispettivamente uno in Source file... e l'altro in Header file...,
ho successivamente dichiarato una funzione membro nella
classe documento del nuovo progetto che restituisce un puntatore ad un
oggetto della mia classe. Ho provato a compilare il
progetto, l'obj della mia classe viene creato, ma il compilatore mi dice
che c'è un errore nella dichiarazione della funzione
membro oppure che manca la dichiarazione della mia classe. La stessa
funzione l'avevo creata nel progetto di prova e
tutto andava bene. Sembra che il compilatore non riesca a vedere l'obj
che lui stesso crea. Ho risolto il problema
riscrivendo nuovamente 455 righe di codice nel nuovo progetto, so bene
che questa non era la soluzione giusta, ma allora
come si fa ad importare in un nuovo progetto dei file .cpp ed .h creati
in precedenza? (ovviamente avevo inserito delle
#include appropriate all'interno del file .cpp dell'oggetto documento).
Forse devo inserire qualche altra include in qualche altro file del 
progetto?
Per favore aiutatemi.
Vi ringrazio anticipatamente per il vostro interesse
la mia e-mail è 
d...@mail.omnitel.it
p.s. -  rispondetemi nel NG, non via e-mail, lo preferisco, grazie.


ICQ #34602650

Newsgroup: it.comp.lang.c++
Titolo: Puntatore Sender

Salve a tutti,
Sono un utente C++ Builder. Ho il seguente problema:
ho creato nel mio form una serie di pulsanti che ho
collegato al medesimo Event OnClick.
Vorrei avere la possibilità di leggere la Caption del
bottone premuto utilizzando il puntatore Sender come
riferimento
String ss = Sender->Caption;
ma il compilatore si rifiuta in quanto Caption non risulta
membro di System::TObject
C'e' qualcuno che sa dirmi come aggirare l'ostacolo?
Grazie 1000,
Francesco
gi...@tin.it

membro di System::TObject
Devi fare un <dynamic_cast> su Sender.
-- 
Ing. Roberto Gerola
Email: 
robert...@penguinpowered.com
WWW: 
http://www.penguinpowered.com/~The_Cpp_Compass
Newsgroup: it.comp.lang.c++
Titolo: Calcolo del tempo di esecuzione

Ho bisogno di una procedura che mi calcoli il tempo trascorso
dall'inizio alla fine dell'esecuzione di una funzione: ho provato ad
usare la funzione Difftime sfruttando l'esempio nell'help del Visual
C++ ma in questo modo ho un valore in secondi mentre vorrei avere
l'informazione relativa ai millisecondi.
C'è un modo per farlo?
Alessandro



GetTickCount
Antonio

ok ma come si utilizza la funzione GetTickCount?
Ho provato a leggere l'help del Visual ma non è molto chiaro...

Ho provato a leggere l'help del Visual ma non è molto chiaro...
GetTickCount() non fa parte delle librerie C++ standard.
it.comp.programmare.win32 per domande relative a API del
sistema operativo.
L'API in questione, in ogni caso, si usa nel modo seguente:
#include <windows.h>
#include <iostream>
int main()
{    
    DWORD d = GetTickCount(); // millisecondi
    for (int i = 0; i <= 100000L; i++)
    {
        std::cout << "sprrr" << std::endl;
    }
    d = GetTickCount() - d;
    std::cout << double(d) / 1000 << " secondi"; 
    return 0;
}
-- 
Andrea Laforgia (
walkie...@libero.it
)
"Usenet is a strange place" [Dennis Ritchie]

Grazie mille il programma funziona però ora è nata l'esigenza di fare
la stessa cosa in C:esiste unanfunzione che fa al mio caso anche li?

 la stessa cosa in C:esiste unanfunzione che fa al mio caso anche li?
Intendi in C? Qual'è il problema? 
-- 
Luc.

 la stessa cosa in C:esiste unanfunzione che fa al mio caso anche li?
Come ti ho gia' detto, GetTickCount() non fa parte 
delle librerie standard C++, e' un'API di Windows,
per cui puoi usarla in C, come in C++.
Per domande di questo tipo, per cortesia, spostati
su it.comp.programmare.win32.
Se vuoi trasformare il mio codice in codice C ti 
basta sostituire le funzioni di I/O.
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

...

Il problema è che il codice postato da Andrea funziona in C++ ma non
in un programma in linguaggio C...

OK ora provo a sostituire le funzioni, grazie mille per aver risposto!
Alessandro

 in un programma in linguaggio C...
Ovviamente. La mia domanda era qual'era la difficoltà che ti 
'bloccava'... 
-- 
Luc.

 in un programma in linguaggio C...
Certo che funziona, se ti limiti a considerare la parte relativa
a GetTickCount().  E' ovvio che il mio codice non funzioni, se
provi a compilarlo con un compilatore C, proprio perche' e' codice
C++.
BTW: it.comp.programmare.win32.

Newsgroup: it.comp.lang.c++
Titolo: diff OLE COM ActiveX DCOM > help

>PGP public key avaiable with "finger
xywza...@helen.cli.di.unipi.it
<<
fingerprint: D1E7 641F 1821 74BA  1836 9B50 B37C 5FA3

Vorrei capire se questa roba mi interessa.
Ho appena messo sul mio website un mio piccolo paper in merito,
una "management-level introduction" a COM e dintorni:
 
http://magenta.com/~alex/ComEtc/briefest.htm
(sorry, e` in inglese...!).  Ho scritto anche altro materiale
piu` tecnico sul tema (sempre in inglese...): specificamente, su
COM, Scripting, Automation, e loro implementazione con Microsoft
Visual C++ 5.  Se interessa, potrei renderlo disponibile nello
stesso modo.  Per ora, nulla in specifico su DCOM (mi interessa,
ma non me ne sono ancora occupato a fondo), ActiveX (me ne cale
sino a un certo punto), e OLE (me ne cale poco e punto).
Alex
--
 ____    Alex Martelli, Bologna, Italia -- email: 
al...@magenta.com
 \SM/___                                 
http://magenta.com/~alex
  \/\bi/     You never know what is enough unless you know what
     \/          is more than enough.

Newsgroup: it.comp.lang.c++
Titolo: Funzionamento di >> ed eof in fstream

Salve a tutti. Avrei una domanda sull'utilizzo dell'operatore >>
nell'utilizzo dei file per la lettura. Ho notato che c'è un
comportamente un po' particolare, ossia che se ho un file di testo con
un solo numero intero all'interno, esso viene letto, e viene posto poi
eof a true. Se però non ho nulla, un file proprio vuoto, devo fare una
lettura a vuoto per ottenere il true sull'eof, senza avere un valore
sensato. Ora, questa cosa mi crea qualche problema perché non riesco a
capire se il numero letto sia effettivo o solo un numero non
prevedibile derivato dal fatto che il file era vuoto. Non so se mi
spiego. Ora, qualche soluzione penso di averla trovata, però vorrei
sapere cosa si fa generalmente, ossia se c'è qualche soluzione molto
veloce e concisa, dato che il solo while(!streamIn.eof()) non mi pare
sia sufficiente.
Grazie mille a tutti!


Ti propongo 2 metodi molto puliti
while(!streamln.get(ch)) <- se il file e' vuoto .get ritorna false
oppure
controlla streamln.good() dopo ogni lettura. se e' false vuol dire che
la lettura non e' andata a buon fine. ( nel caso di stream vuoto,
capisci che il carattere non e' stato letto perche' good() ritorna
false, se invece viene letto e poi finisce il file good() resta
comunque true )

> la cosa funziona male. Però una soluzione è quella di spostare
indietro il puntatore dopo questa operazione, che penso si possa.
Questo è quello che avevo pensato. Mi chiedevo però se ci fosse
qualcosa di più contratto.
Grazie mille!
Newsgroup: it.comp.lang.c++
Titolo: sqlctx

Salve a tutti,
ho un problema con un programma in Pro*C:
1) precompilo con il programma Pro*C/C++ di Oracle, che mi restituisce il 
programma in C,
2) se provo a compilare/eseguire il programma in C con Dev-C++ o con Visual 
C++  mi da errore su una variabile "sqlctx" o qualcosa di simile.
Come faccio a risolvere questo problema? 

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

Premetto che ho usato il proc vari anni fa e + sotto unix che sotto 
windows cmq hai settato tutte le librerie ed i percorsi per librerie ed 
include corretti all'interno dei tuoi progetti ?
ciao
PP


 ha scritto nel messaggio 
news:dsd1jc$1t8m$1...@stargate1.inet.it...


Siete OT. Cercatevi un altro newsgroup o contattatevi via email.
Grazie,
Nicola

Newsgroup: it.comp.lang.c++
Titolo: Connettersi ad un DB Access senza ODBC ???

Come da subject.
Vorrei scrivere un semplice codice per fare inserimento dati su di un db.
Dal momento che non configurerò i client sui quali si farà inserimento non
posso usare ODBC.
Come mi collego al db e quali librerie utilizzo???
Dove trovo docs???
Grazie

 ha scritto nel messaggio
news:rGwb8.6979$eD3.3...@twister1.libero.it...

Sbagliato newsgroup?

> Sbagliato newsgroup?
Beh chiedevo come fare a collegarsi ad un DB in C++ senza usare ODBC...
Non è inerente a C++ ??

 ODBC... Non è inerente a C++ ??
al c++ del tuo OS si, al c++ standard no.
Solo l'ultimo e' argomento di questo NG

Non č inerente a C++ ??
Non perché il C++ non sa nulla di DB, devi usare delle librerie
esterne.
-- 
Marco Barisione (ICQ 84277092)