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

Stranamente il numero di questo mese di IoProgrammo non e' male.
Tra le varie cose il 1 compilatore C e 2 C++ (tutti e tre free), un
linguaggio di script in C per win32 (free anche lui) e altre cosette. 
-------------------------------------------------------
http://members.it.tripod.de/papero/index.html

 wrote in message
376be34...@news.tin.it...


> linguaggio di script in C per win32 (free anche lui) e altre cosette.
Come si chiama tale script language e da dove si può scaricare ?
Grazie

> tale script language
Il sito e':
http://www.geocities.com/SiliconValley/Ridge/3602/
-------------------------------------------------------
http://members.it.tripod.de/papero/index.html

Newsgroup: it.comp.lang.c++
Titolo: domanda sui namespace...

da quello che ho letto fin'ora un namespace serve a raggruppare le funzioni
per 'categorie', in modo da non dover dare nomi troppo strani alle funzioni,
e evitare collisioni con i nomi delle funzioni
solo che non viene spiegato come si crea un namespace.
inoltre volevo sapere se ha anche saltri scopi
grazie
--
ciao
..::[xaero]::..

inoltre volevo sapere se ha anche saltri scopi
Non mi risulta, ma potrei sbagliarmi.
grazie
-- 
La classifica dei prodotti MS:
C#, la migliore barzelletta di Bill Gates.
Visual C++, il meno standard dei compilatori C++.
J++, la copiatura più riuscita.
Windows, il più instabile.
Visual Basic, un esempio di prodotto decente della MS - forse l'unico -.
OutlookExpress, scandali su scandali.
La classifica degli "amici" coglioni:
Stefano Zanchi, il miglior lamer del mondo.
 

Non mi risulta, ma potrei sbagliarmi.
In C++ e' stato anche introdotto il concetto di "unnamed namespace"
ovvero del namespace senza nome. Quello che sembra essere un
gioco di parole sostituisce in realta' le dichiarazioni "static" del
C e permette di definire simboli a livello di modulo che non
vengono esportati.
In C++ si consiglia di sostituire codice C come:
  static int x,y;
  static void foo(int z)
  {
    ...
  }
con il logicamente equivalente
  namespace {
    int x,y;
    void foo(int z)
    {
      ...
    }
  }
L'uso dei namespace senza nome permette inolte anche la dichiarazione
di classi a livello di modulo che non andranno in conflitto con
altre classi con lo stesso nome nel progetto (non esiste infatti
la possibilita' di dichiarare "static class X { ... };")
C'e' stata un thread su questo argomento qualche settimana fa.
HTH
Andrea
--
Andrea Griffini, Programmer
http://www.netservers.com/~agriff

>la possibilita' di dichiarare "static class X { ... };")


C'e' stata un thread su questo argomento qualche settimana fa.
Grazie, Andrea.

Newsgroup: it.comp.lang.c++
Titolo: DLL x C++ Builder

Buongiorno a tutti. Mi sto cimentando nello scrivere una DLL utilizzando
C++ Builder 3 della Borland. L'esempio proposto nel manuale in linea
è abbastanza semplice, tuttavia non sono riuscito a crearmi una mia
DLL che contenga una classe da reimpiegare nel mio progetto.
Ottengo degli 'unresolved external' per alcuni metodi della classe, anche
se ci sono tutti nel file header.
Forse sbaglio qualcosa nei passaggi......c'e' qualcuno che mi scrive due
righe di codice sui vari passaggi da fare x creare  una DLL contenente una
classe?
P.s. Qual'e' la'Api che permette di richiamare la DLL da codice, senza
doverla
inserire manulmente nel progetto (LoadLibrary ?).
Grazie in anticipo
Marco

 č abbastanza semplice, tuttavia non sono riuscito a crearmi una mia


Marco
Non sono avezzo al C++ Builder quindi posso solo fornirti qualche indicazione
generale.
Il compilatore C++ di Microsoft fornisce la direttiva a livello di classe
__declspec(dllexport) che forza l'esportazione di tutti i metodi della classe.
Forse sul C++ Builder c'è qualcosa di analogo.
Comunque puoi sempre crearti un file DEF con tutti i simboli da esportare (il
nome dei vari metodi, nel tuo caso).
Per quel che riguarda le API: usa LoadLibrary per caricare la dll e
GetProcAddress per ottenere un puntatore al metodo esportato dalla dll stessa.
Con quel puntatore, poi, effetui la chiamata al metodo. Dovrebbe funzionare.
Ciao.
--
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Andrea Baruzzo
Via Circonvallazione, 26
Muzzana del Turgnano (UD) - Italy
e-mail: 
andrea....@ud.nettuno.it
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Newsgroup: it.comp.lang.c++
Titolo: Re: [OT] controllo pubblicazione posts

 pubblicati?
Si, ci stanno e sono anche doppi (ogni tuo messaggio ce ne sta un altro
uguale)
PS: se puoi metti codifica UTF-8 cosi' i caratteri come ащти etc.. li
vediamo normalmente...
ciao
-- 
bunker
+++++++++++[>++++++>++++++++++++++++++++++++++++++++
+>++++++++++<<<-]>.>++++++++++.>.<----------.>---------.<+++++++.


Grazie a tutti per la pazienza,
FabioMDF
--------------------------------
Inviato via 
http://arianna.libero.it/usenet/

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

<quote>
Non val la pena combattere contro gli idioti, si fanno già del male da
soli.
</quote>
Indovina di chi e', la citazione?
Ahahah...

 wrote in message
news:b1u4lk$fhs$1...@news5.isdnet.net...

Era in risposta a "[OT] Educazione", scusate.

Newsgroup: it.comp.lang.c++
Titolo: std::string e ifstream: problema....

con questo programma dovrei aprire un file dopo aver "composto" il nome di
file, dato che č un test per un programma piů complesso in grado di aprire
il file in base all'anno che io gli do. Il problema č che
ifstream in(fname);
mi da errore, ovvero mi dice che fname č string e lui invece vuole char*, o
qualcosa del genere.
ecco il listato e l'errore che da.
#include <iostream>
#include <string>
#include <fstream>
using namespace std;
int main(int argc, char *argv[])
{
    string s;
    string fname;
    fname = "extr";
    fname += "2001";
    fname += ".txt";
    cout<<fname<<endl;
    ifstream in(fname);
    while(getline(in, s))
        cout << s << "\n";
  system("PAUSE");
  return 0;
}
14             cannot convert `fname' from type `string' to type `char *'
se qualcuno mi dice come convertire la string in modo da poterla usare con
fstream, gliene sarei grato....
Raffaele

 qualcosa del genere.
prova con
std::ifstream in (fname.c_str ());
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

 char*, o qualcosa del genere.
se fname e' di tipo std::string devi usare la seguente sintassi:
ifstream in(fname.c_str())
fname.c_str() restituisce la stringa associata a fname come array di
caratteri (nel formato del C, per intenderci).
LG
-- 
*********************************************************************
Leandro Gelasi
V year Computer Science Engineering student at Siena University
gela...@lucy.dii.unisi.it
Gilles Villeneuve will live forever
*********************************************************************

 std::ifstream in (fname.c_str ());
Ottimo!
tra parentesi, sto leggendo il thinkig c++....ma è lungooooooo.....!!!!!
però è molto interessante!! peccato che nn l'ho provato prima
secondo voi è un problema se me lo sono stampato??
Raffaele
Newsgroup: it.comp.lang.c++
Titolo: Confronto di insiemi... AIUTO

Scusate io devo fare un controllo su l'insieme che va da m - z e lo ho
scritto in questo modo ma mi da sempre il valore sbagliato sta
funzione......
i=0;
 do{
    if(Esp_inp[i][0]>='m'||Esp_inp[i][0]<='z'){
 tipo=1;
 i++;
    }
    else if(Esp_inp[i][0]=='*'||Esp_inp[i][0]=='/'||Esp_inp[i][0]=='%'){
 tipo=1;
        i++;
    }
    else if(Esp_inp[i][0]>=1||Esp_inp[i][0]<=9){
 for(j=0; Esp_inp[i][j]!='\0'; j++){
  if(Esp_inp[i][j]=='.'){
   tipo = 1;
  }
  else{
   tipo = 0;
                        i++;
  }
 }
    }
    else{
 if(tipo == 1){
  tipo = tipo;
  i++;
 }
 else{
  tipo=0;
  i++;
 }
    }
 }while(i<=n);

 funzione......
?????
Potresti essere un po' piu' chiaro nell'esposizione del problema,
e magari anche del codice?
Bye

     else if(Esp_inp[i][0]>=1||Esp_inp[i][0]<=9){
else if(Esp_inp[i][0]>=1 && Esp_inp[i][0]<=9){
Penso che tu abbia confuso nella logica gli or con gli and.
Maurus

Newsgroup: it.comp.lang.c++
Titolo: Persistenza classe

[CODE]
/*
### Copyright (c) 2004 Luca Francesca
### This script is provided under the terms of the GNU General Public 
License
### (see [url]
http://www.gnu.org/licenses/gpl.html[/url]
 for the full 
license text.)
*/
#include <iostream>
#include <fstream>
#include <string>
using namespace std;
class CProva
{
	private:
		int n;
	public:
		CProva(): n(0){};
		CProva(int N): n(N){};
		~CProva(){};
		friend ostream& operator<<(ostream& os, CProva& c)
   	        {
   		  os << c.n;
   		  return os;
  	 	};
		friend istream& operator>>(istream& is, CProva& c)
   	        {
   		  is >> c.n;
   		  return is;
  	 	};
};
int main(int argc, char *argv[])
{
	CProva c(10);
 
	ofstream of("i.txt");
	ifstream ifs("i.txt");
	// save the state of class
	of << c << "\n";
	of.close();
	// sreload the state of class
	ifs >> c;
	cout << c << "\n";
	ifs.close();
 
	cout << endl;
	char esc;
  	std::cin.get(esc);
  	return 0;
}
[/CODE]
In questo modo ottengo una specie di persistenza dei dati.
Ho ragione o sbaglio???
Tnk
-- 
Tnk
Luca "Kleidemos" Francesca
Un computer a un altro quando si incontrano:
"Ciao, come ti boota oggi???"

 Ho ragione o sbaglio???
Hai fatto l'overload degli operatori << e >> verso ostream e da istream,
niente di piů, niente di meno!
Domanda: ma c'č bisogno di postare tutto quel codice per una domanda cosě
semplice?

 semplice?
Effetto della birretta???
A parte gli skerzi era una mia curiositŕ


 A parte gli skerzi era una mia curiosità
E' un modo tipico di scrivere su stream dei dati! Stream non significa solo
a video... ecco perché sono un pò sbottato!
ciao.

 ciao.
Il fatto è che x uno di 16 anni come me ste scoperte soco importanti, 
penso :P


 [CODE]
Si è un modo per realizzare la persistenza dei dati (non della classe!)

Newsgroup: it.comp.lang.c++
Titolo: Cerco compilatore C per 8051

Cerco compilatore per microcontroller 8051 ... so che in giro ce ne sono di
shareware...
grazie
gra...@tin.it


gra...@tin.it
--
              _-\
Ciao..........O-O
Poser Ivan (Africa Twin 750) ATIC 136
E-Mail    : 
iv...@elettra80.com
ICQ :4710428
Home Page : 
http://www.elettra80.com/IVAN/index.htm
Newsgroup: it.comp.lang.c++
Titolo: DLL e funzioni membro

Ciao,
io sapevo che in una DLL non si possono esporre funzioni membro di una 
classe, cioï¿œ se ho
class pippo
{
int pluto(int);
};
non posso chiamarlo dall'esterno della DLL ma devo scrivere una funzione 
wrapper dichiarata __declspec(dllexport) (o qualcosa del genere)...
ma ï¿œ vero al 100%?
E anche: ma in alcuni casi sarebbe utile poterlo fare oppure ï¿œ comunque 
meglio di no?

 meglio di no?
Come ti ho detto e' una cosa che viene fatta abitualmente. Il
"meglio" o "peggio" dipende da quello che devi fare.
Personalmente a me scrivere una cosa del genere
pippoP = new pippo;
retVal = pluto(pippoP, par1, par2, par3,..., parN);
non e' che faccia impazzire.
HTH
C:\>iao Angelo
Newsgroup: it.comp.lang.c++
Titolo: sempre exe

Scusate. Ho creato un piccolo programma che mi permette di eseguire le
quattro operazioni incrociando a,b,c,d e via dicendo. Perchè non posso
visualizzarlo sotto Windows? Dico non è un file exe quello che l'LccWin32 ha
compilato?
Grazie

 wrote in message
news:8q4dle$pna$1...@pluto.sm.dsi.unimi.it...


Newsgroup: it.comp.lang.c++
Titolo: queue: dimensione massima

ciao,
vorrei sapere che dimensione massima puo' avere una queue.
ho visto che size() restituisce un size_type, ma dall'MSDN (uso VC)
non ho ricavato informazioni utili.
poiche' il programma gira ininterrottamente devo controllare tale valore,
e nn vorrei rischiare di andare in overflow!!!
PS: ed in caso non esistesse, come fare ad ottenere un valore ragionevole!
grazie
ciao by allanon

 a écrit dans le message news:
a8ucih$vavfd$1...@ID-139431.news.dfncis.de...

Ciao Allanon,
essendo il secondo parametro del template di queue una deque per default:
template<class T, class Cont = deque<T> >
class queue {
public:
// eccetera
protected:
    Cont c;
};
Potresti accedere all'oggetto c di tipo Cont che e' una deque<T> per
leggerne la taglia massima attraverso il metodo max_size().
Maurus

 leggerne la taglia massima attraverso il metodo max_size().
Non credo che esistano garanzie che il valore ritornato tenga conto dei
limiti fisici specifici di una particolare macchina e non sarei stupito
se molte implementazioni si limitassero a restituire il valore massimo
di size_t.
Ciao,
Nicola

 Nicola
e quindi? :-(
sviluppando un'applicazione "server" che deve funzionare *sempre*
come fo'?
si, potrei stare sul sicuro e dargli un valore "bassino" scelto a priori da
me,
pero' se esistesse una soluzione a livello di standard sarei piu' contento.
da quello che dici non sembra esistere.
quindi, andando OT, con VC++ esiste qualche "feature" che mi da questa
indicazione?
grazie...
--
Ciao by Allanon
Q: Why do programmers always mix up Christmas and Halloween?
A: Because 25 Dec = 31 Oct

 indicazione?
Sarei ben stupito che esistesse, salvo che non si tratti di rilevare
l'intera memoria occupata dall'applicazione. Comunque prova a vedere
sulla documentazione e/o sul sito della Dinkumware, che produce
l'implementazione della libreria utilizzata da VC.
Ciao,
Nicola

 come fo'?
Clean-up dopo X registrazioni. Da noi si fa cosi anche per non fare 
occupare troppa memoria al processo a discapito degli altri... 
-- 
Luc.
Newsgroup: it.comp.lang.c++
Titolo: Teoria su char,int e long: delucidazioni.

Sto usando hardware molto limitato, al massimo mi supporta un unsigned 
int da 65525 bit.
Ho visto software su questo hardware in cui dichiaravano delle unsigned 
long (se non sbaglio circa 4.294.967.295).
Domanda: in queto caso chi si occupa di gestire in modo trasparente le 
conversioni? Il compilatore? Cioï¿œ se definisco un unsigned long, tutte 
le operazioni che ovviamente vengono swappate su + registri da 16 bit, 
vengono gestite dal compilatore?
La domnada scaturiva dal fatto che avrei bisogno di superare il numero 
65535 e ovviamente quando definisco un unsigned long mi arrivano errori 
del linker e altre eccezioni. Quindi volevo sapere se ï¿œ una limitazione 
dell'hardware insormontabile e quindi posso usare solo degli unsigned 
int oppure ï¿œ questione di compilatore.
Grazie per le delucidazioni.

 int da 65525 bit.
Pensa che sul mio computer gli unsigned int hanno 32 bit ;-)
Comunque 2^16 - 1 = 65535.
E.

 int oppure ï¿œ questione di compilatore.
E' questione del compilatore. Non capisco perchï¿œ ti dia errore, e non mi 
sembra normale. Puoi mostrare l'errore dato dal linker e la riga di 
codice incriminata?
E.

 codice incriminata?
Dai andavo di fretta ...65535 invece di 65525 ;-P
Il messaggio ï¿œ:
"C:\Documents and Settings\utente\Desktop\ARC_1.0\Build\project.prm": 
WARNING L2066: Variable "_startupData" not found, linker prepares no startup
"C:\Documents and Settings\utente\Desktop\ARC_1.0\Build\project.prm": 
ERROR L2410: Unresolved external __SLINC (imported from main.o)
Considera che il compilatore ï¿œ il vecchio Hiware estinto, adesso ï¿œ stato 
ripreso credo dal Codewarrior, sarebbe per micro ST.
Io ho solo dichiarato:
volatile unsigned long MyTest;
e nel main ho messo:
MyTest++;
Grazie ancora!

Ciccio ha scritto:

Ma sei sicuro che l'errore dipenda da queste righe che riporti? Se togli 
quelle righe compila?
E.

 
Eccome che compila!
Gli errori che dï¿œ ho imparato ad ignorarli perchï¿œ viene sempre fuori il 
linker anche se non centra nulla.
Quello che mi chiedevo ï¿œ a livello teorico: se ho solo registri da 16 
bit, per scriverne 32 come si fï¿œ?
E' il compilatore che deve farsi carico di questo?
Oppure non si puï¿œ?
E' teoria...che mi manca tanto ;-)
Grazie ancora.

 E' il compilatore che deve farsi carico di questo?
e' il compilatore che si fa carico di tutto, usando funzioni di libreria 
  "speciali" o mettendo la necessaria sequenza di istruzioni in linea 
nel codice, per capire come si comporta nello specifico basta andarsi a 
guardare i sorgenti assembler che tipicamente i compilatori possono generare
probabilmente bisogna solo dire al linker di aggiungere l'opportuna 
libreria ( strano che non lo faccia in automatico )
in questi casi aiuta qualche utility ( tipicamente fornita col 
compilatore ) che fa il dump dei simboli pubblici definiti in un modulo 
oggetto o libreria

Newsgroup: it.comp.lang.c++
Titolo: Exception!Piccolo problema di controllo errori!

Ciao a tutti il mio problema e' il seguente:
(Utilizzo il c++ builder della Borland...)
In pratica vorrei assumere un valore intero dalla Tedit, pero' questo deve
essere compreso tra 1 e 31, e poi devo far si' che non possano essere
inserite lettere...come faccio?
E' giusto usare il costrutto Try-Catch?
void __fastcall TForm1::Edit1Change(TObject *Sender)
{
 try
 {
  g=StrToInt(Edit1->Text);
 }
 catch(EConvertError &E)
 {
  Che ci metto qua?
 }
QUesto e' il piccolo frammento di codice che non riesco a completare...saro'
grato a chiunque mi voglia aiutare!!!!!!:-)))
 Byez By Roby "Offear" '82
 Unofficial Blind Guardian's Site:
 
http://surf.to/Blindguardian
 Mi raccomando visitatela!!!!!!!!

Le eccezioni dovrebbero essere usate per gestire situazioni anomale
particolarmente gravi, ad esempio il fallimento di un tentativo di
acquisizione di risorse fondamentali (memoria dinamica, una dll...),
cioe` tutte quegli errori che potenzialmente possono causare la
fine prematura del programma.
Situazioni di errore tipo errato input dell'utente dovrebbero essere
gestite a monte controllando l'input dell'utente quando viene immesso
ed eventualmente chiedendo di ripetere l'operazione.
Nelle OWL c'era la classe TValidator (e derivate), sicuramente ci
sara` qualcosa di analogo nelle VCL, prova a cercare...
Paolo
-----------------------------------------------
  Paolo Marotta
  Computer Science, University of Pisa
  home:   
http://www.cli.di.unipi.it/~marotta
-----------------------------------------------

fine prematura del programma.
Hm, questo e' interessante. Che vantaggi hai con quell'approccio? Se non ci 
sono particolari requisiti di efficienza, di solito io uso partizionare le 
eccezioni in varie classi, tra cui quelle relative ai dati errati - in 
questo modo mi diventa piu' facile usare la stessa logica per operazioni 
che arrivano da GUI o da altre fonti (che magari non posso validare finche' 
non ...arrivano. Tipicamente in flussi dati da host o cose del genere :)
Generalmente definisco un oggetto apposito, associato all'oggetto 
elaborativo, che si occupa della validazione logica ed e' in grado di 
reagire opportunamente ad eccezioni logiche dovute a dati sbagliati. Questo 
permette anche di modificare (aumentare) il tipo e numero di eccezioni 
gestite senza intervenire sulla logica - irrobustendo piu' facilmente il 
prodotto in successivi incrementi.
-- 
God is Real, unless declared Integer.
ObjectZone - 
http://space.tin.it/computer/csadun/

non ...arrivano.
Se non puoi validare fino a quando i valori non servono, non credo si
abbia scelta, le eccezioni sono lo strumento migliore...
Comunque l'idea di usare sempre la stessa logica non e` affatto male,
anzi... Bisogna vedere come si incastrano i pezzi.


Comunque cerco di non avere idee preconfezionate...
Gia', e' sempre la cosa migliore. :) 


verificare la situazione).
Ok, chiaro. :) Da quando ho cominciato ad usare un approccio uniforme 'ad 
eccezioni', per cosi' dire, devo dire che mi trovo bene. In effetti pero' 
con questo conduce a codice in media un po' piu' complicato - soprattutto 

Newsgroup: it.comp.lang.c++
Titolo: Esiste un compilatore freeware per Windows

Vorrei sapere se esistono, compilatori scaricabili da internet
gratuitamente, che consentono di realizzare (in qualsiasi linguaggio)
programmi che girino sotto windows. Naturalmente vorrei poter disporre di
una interfaccia semplice (le solite Visual-ecc.) e di un linguaggio
altrettanto facile.

 wrote in message news:848rif$287$1...@nslave2.tin.it...

www.python.org
 ti dara` piena e gratuita soddisfazione, ma
questo gruppo e` *particolarmente* inappropriato per questa
discussione, visto che il C++ non c'entra affatto.
Parliamone, se mai, su it.comp.programmare.win32, ti pare?
Alex


il_t@sso
il_t...@freemail.it

Newsgroup: it.comp.lang.c++
Titolo: Editor modalita' console "syntax highlighting"

Potreste consigliarmi un buon editor (sensibile alla sintassi)
in modalita' console? Tipo jed sotto Linux per intenderci
(jed sotto Windows non sono riuscito a farlo funzionare
con la "syntax highlighting").
Grazie

Ale55andro ha scritto:

1. Sei un po' OT (ma visto che non è passato il ng sugli editor di testo per
programmatori, ti rispondo lo stesso ;-))
2. Su che OS?
3. Su qualunque OS tu sia, ovviamente Vim. Oppure, se ti piace di più,
Emacs.
-- 
Andrea Bergia - studente              Linux Registred User #281550
"The one thing we're all waiting for, is peace on Earth and an end to war,
it's a miracle we need, the miracle, the miracle, 
Peace on earth and end to war today,
That time will come one day you'll see when we can all be friends"

Emacs.
Vorrei esercitarmi utilizzando un compilatore "a linea di comando"
(ed ho trovato il Borland gratuito) piu' un editor, funzionante
dalla shell di Windows 2000. 
Grazie

 Emacs.
Se seguono la filosofia di Vi e MicroEmacs da me usati/provati capisco 
perchè alcuni programmatori ci mettono una vita a sviluppare codice... 
Con tutte le combinazioni di tasti che devono usare per eseguire semplici 
operazioni... Mah... ;-PPP
-- 
Luc.
Newsgroup: it.comp.lang.c++
Titolo: Problemi di memoria

Devo scrivere un programma C++ per DOS che utilizza un array di 307200
double. Compilo (impostando il modello di memoria "huge"), eseguo, l'array
viene allocato correttamente, ma quando ci scrivo dei dati mi fa un'
"eccezione di protezione generale" e si pianta tutto. Ho scritto il seguente
programma di prova, che esegue la medesima operazione e mi dà lo stesso
problema. Qualcuno potrebbe gentilmente spiegarmi dove sta l'errore? Io uso
il Borland 3.1.
Grazie in anticipo.
Gabriele.
#include <iostream.h>
void main()
{
 double huge *array;
 long int i;
 array = new double[307200L];
 if (array==NULL)
  cout << "Allocazione fallita\n";
 else
 {
  cout << "Memoria allocata all'indirizzo " << array << endl;
  cout << "Scrivo nella memoria allocata...\n";
  for (i=0L; i<307200L; i++)
   array[i] = 283.872636; // Un numero a caso
  cout << "Scrittura OK\n";
 }
}

 }
per l'array allochi circa 2.4MB di memoria (307200*sizeof(double))
il limite della memoria convenzionale del DOS e` di 640KB
imho e`  questo il problema
potresti provare con qualche memory manager (tipo himem) oppure farlo
girare in una finestra DOS sotto win
ciao
Kronos
-- 
Home: 
http://kronoz.tsx.org
This message will self distruct in 5 seconds.
Newsgroup: it.comp.lang.c++
Titolo: Chiamare una VB ActiveX DLL da C++

Salve a tutti!
Alcune delle ActiveX Dll che ho creato devono essere chiamate da C++, ma
finora non ci sono riuscito nell'impresa.
C'è qualche esempio da consultare, oppure qualcuno può darmi qualche dritta?
Vi ringrazio anticipatamente.
Cosimo Schiavo
_________________________________________
Togiere NOSPAM dall'indirizzo per rispondermi
_________________________________________

 wrote in message
7u49ct$b8l$1...@fe2.cs.interbusiness.it...

Non so che prove hai fatto fino ad adesso.
Prova ad usare #import "????.dll"
Dovrebbe creare un .tlh e un .tli che vengono inclusi automaticamente.
Questi contengono le classi, le proprieta' e i metodi del DLL ActiveX
Ricordati di chiamare CoInitialize() all'inizio del programma.
--------------------------------
zel...@tiscalinet.it
http://www.tiscalinet.it/zeldan
--------------------------------

Ciao, hai provato con la funzione LoadLibrary(..) in C++ ??? forse potrebbe
andare ...

Newsgroup: it.comp.lang.c++
Titolo: Files .o con Dev-C++

Scusatemi, come si fa a compilare files .o con il Dev-C++?
E poi come faccio a compilare un progetto formato da files .cpp e files .o? 
Inserisco i secondi nel progetto come se fossero dei .cpp?
Grazie delle info. 

gerarcone ha scritto:

Ciao, io uso la versione 4.9.9.1.:
dopo che hai salvato il sorgente in .cpp in una cartella premi F9 per
compilarlo e avrai un file .exe nella cartella dove hai salvato il
sorgente.
Saluti

 sorgente.
Siamo d'accordo, ma io non voglio il file exe, voglio il file oggetto!
Grazie comunque.

 ricompilati.
Mi potresti dire "praticamente" come fare? La teoria la so, è la pratica che 
mi manca! :p

gerarcone ha scritto:

Possibile che nessuno sappia come fare? :( 

 directory dopo aver compilato? :-o
Sì e no. Nel senso che sapevo che quando si compila un *progetto* nella 
cartella ci sono anche i files .o, ma ancora non ho capito perché se si 
compila un singolo file .cpp esce fuori solo l'exe. o_O

 altrimenti, con un file sorgente senza main avrai solo l'object.
Orco boia, ecco perché!!! Grazie mille, era proprio questo che volevo 
capire!!!
Ciao! :D
Newsgroup: it.comp.lang.c++
Titolo: Operatore d'assegnamento

Salve NG,
 
scusate, magari sono un po' (un po' tanto) arrugginito, o forse solo un sacco
stanco, ma sul codice mi è uscita una strana situazione che non riesco a
capire..
Ho un template con vari operatori, tra cui assegnamento, + e +=.
Se scrivo l'implementazione del + così:
 
template<class T, class N>
const MyClass<T, N> MyClass<T,N>::operator+(const MyClass<T,N>& oth) const
{
    MyClass<T,N> ret = *this;
    ret += oth;
    return ret;
}
 
*non* scatta l'operatore d'assegnamento, mentre invece se la prima riga la
faccio diventare
 
MyClass<T,N> ret;
ret = *this;
 
funziona tutto come mi aspetterei (crea l'oggetto, chiama l'operatore
d'assegnamento etc.)
 
Forse potrei capire perché succede, ma ho il sospetto di essere troppo stanco
per vedere l'ovvio :(
Un aiutino?
 
Ciao!

 Ciao!
 
 
-- 
1) Resistere, resistere, resistere.
2) Se tutti pagano le tasse, le tasse le pagano tutti
Soviet_Mario - (aka Gatto_Vizzato)
 

 
 
Stavo per scrivere: ma il mio copy-constructor... (perché di solito lo scrivo
come allocazione + assegnamento) poi sono andato a controllare ancora sul
codice e non l'avevo ancora scritto :/
Vabè, so' scemo, che ci volete fare? :D
Grazie mille!
Ciao!


Questo è un costruttore di copia
 
 
ret = *this;
Questo è un assegnamento
 
 
Se il secondo funziona ma il primo no, posso supporre che il copy 
constructor non è definito correttamente
 
 
 
 

 
 
Questa è la prova che scrivo solo in C da troppo tempo (o più probabilmente è
l'età..) ;)
Ciao!

 Questo � un costruttore di copia
 
Scusate se entro a gamba tesa... d'accordo su tutto, ma mi viene un dubbio.
 
E' certo che "X x=y;" chiami sempre il costruttore di copia?
Ci sono casi in cui "legittimamente" vengono chiamati in sequenza il 
costruttore di default e poi l'operatore di assegnazione?
 
Ricordo vecchi compilatori in cui cio' a volte succedeva (quindi ho 
preso l'abitudine di scrivere sempre "X x(y);"), ma non ricordo se erano 
fuori standard o se il rischio c'e' ancora.
 
Grazie.
 
  bye
	av.

      av.
 
Se il compilatore è standard e X è una classe e y è tipo X allora chiama 
il costruttore di copia se definito
 

 il costruttore di copia se definito
 
Intendi definito esplicitamente?
 
  bye & Thanks
	av.


la clausola explicit (se č quella che intendi) evita solo le conversioni 
automatiche
 
Quando scrivi
X x = y
 
Il compilatore tenta sempre di  invocare  un costruttore di copia
e se puņ lo invoca
Se nessun costruttore di copia č definito il compilatore ne definisce 
uno automaticamente
Newsgroup: it.comp.lang.c++
Titolo: Richiesta di informazioni

Premetto che è tanto tempo che non utilizzo il c++ e che non ho nessuna
famigliarità con la programmazione in ambiente win32 con questo linguaggio.
ciò di cui ho bisogno e costruire una dll da utilizzare poi con un programma
java.
L'interfaccia con java non è un problema e neanche la compilazione per
creare una dll, il problema è che non sò assolutamente da dove cominciare
per rifare in c++ quello che viene fatto da questo semplicissimo programma
in .VBS
****************************************
Set oNet = CreateObject("WScript.Network")
oNet.AddWindowsPrinterConnection Wscript.arguments.Item(0)
if Wscript.arguments.count >1 then
  if lcase(Wscript.arguments.Item(1))="true" then
 oNet.SetDefaultPrinter Wscript.arguments.Item(0)
  end if
end if
*****************************************
il programmino in VBS utilizza \\NOMESERVER\SHARING per collegare una
stampante e se il secondo parametro è uguale a "true" la stampante viene
impostata come predefinita.
Potreste darmi un suggerimento almeno su dove cercare la documentazione che
mi serve.
grazie per qualunque suggerimento.
Domenico Neri

mi serve.
Qui sei OT, prova a chiedere su it.comp.programmare.win32.
-- 
Marco Barisione (ICQ 84277092)

Newsgroup: it.comp.lang.c++
Titolo: Scambio File

Sto realizzando un'applicazione per WIN9x, senza le MFC. Questa deve
effettuare scambio di dati e file tramite Internet.
Che tipo di funzioni potrei utulizzare per lo scambio di dati visto che le
trasmissioni dati via internet sono affette da errori.
Ho notato che ci sono alcune classei perň per MFC. Potrei utilizzarle
ugualmente?
Grazie a tutti.
Ciao

 trasmissioni dati via internet sono affette da errori.
Non è così. Il protocollo TCP/IP, grazie alla sua struttura a pacchetti,
garantisce l'integrità dei dati.
EMG

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

Qualcuno mi potrebbe indicare se esiste in rete un buon tutorial sulle MFC 
(sto diventando matto  :-)   ) ?
Grazie!

(sto diventando matto  :-)   ) ?
basta utilizzare la VCL che sono molto più comprensibili... :-))
ciao

 Grazie!

 wrote in message
91918181...@tango.comm2000.it...

Newsgroup: it.comp.lang.c++
Titolo: Lentezza in visual c++

Salve, lo so che non sarebbe proprio la ng giusta,
ma qualcuno sa come eliminare i tempi di attesa in
visual C++ 6???
Sono veramente stressato, non posso aspettare
tutte le volte tra un cambio di finestra e l'altra 5-6 secondi, oppure
mentre scrivo codice si pianta per 3-4 secondi, ma perchè?
Cosa deve fare???
Il visual 5 andava benissimo non aveva questi tempi di attesa!
Grazie
Saluti
Alberto

 wrote in message 86mtcc$3fl$1...@fe1.cs.interbusiness.it...

Prova a disattivare IntelliSense (che nel visual 5 non c'era)
Newsgroup: it.comp.lang.c++
Titolo: Problemi di compilazione con MS Visual c++

non capisco perchč mi dia errore su una cosa cosi banale:
#include <iostream>
void main(){
    cout << "hello world";
}
mi dice:
cout operatore sconosciuto
<< ha come operando destro un char[12]  (cosa che per altro non vedo come
errore)
se uso la stdio.printf() anziche cout funziona tutto

 cout operatore sconosciuto
visual c++ usa il nuovo standard perciò dovresti scrivere std::cout <<
"hello world";


 cout operatore sconosciuto
ha ragione
cout sta nel namespace std e quindi devi mettere std::cout
in alternativa puoi aggiungere la riga
using std::cout;
--
Gerolamo

Newsgroup: it.comp.lang.c++
Titolo: Porta seriale COM

Salve a tutti.
Sto cercando di realizzare quanto segue in VisualC++ : vorrei che il mio 
programma, oltre a gestire le cose sue e interagire con l'utente, in 
background (diciamo così)deve leggere costantemente la porta seriale e 
qual'ora ricevesse un certo comando segnalare un messaggio d'errore.
Ciò che non so fare è la lettura costante della seriale.
L'ideale sarebbe qualcosa tipo un interrupt che, all'arrivo di un dato dalla 
seriale, mi fa eseguire una routine dedicata.
Ciò che ho trovato è la WaitCommEvent che però sospende l'esecuzione del 
flusso del programma; però a me serve che l'utente possa continuare a 
premere Buttons ecc.
Per ora ciò che sono riuscito a fare è creare un nuovo Thread che in loop 
attende dati dalla seriale con la WaitCommEvent, così il programma 
principale può continuare il suo corso senza essere sospeso.
E' un metodo ortodosso o si può fare di meglio?
Grazie.
PS: sono un pò principiante nel VisualC++.

qual'ora ricevesse un certo comando segnalare un messaggio d'errore.
Ho risposto ad alcune domande simili in
it.comp.programmare.win32, lavorando in C.
In effetti si usa un thread per leggere la porta, ma puoi anche
decidere se attendere un carattere o un cambio di polarita'
(pulsante aperto-chiuso), cioe' usare la COM come interfaccia di
I/O.

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

salve
sono uno studente di ingegneria informatica all'università di Pisa.. chi sa
spiegarmi come mai se in un file .h scrivo
#include <iostream>
#include <stdlib>
using namespace std;
nel file .cpp quando uso la funzione exit() mi da errore (errore di
linkaggio alla libreria stdlib), mentre se ci scrivo
#include <iostream>
#include <stdlib.h>
using namespace std;
mi compila correttamente tutto??
nello stroustrup ho letto ke lo standard nuovo del c++ prevede di non usare
il .h per le librerie standard, a patto che venga specificato il namespace.
grazie

 #include <stdlib>
#include <cstdlib>
-- 
sbi
"You can have a cheap car that's reliable, and the same applies to rockets."


thanks

 sono uno studente di ingegneria informatica all'università di Pisa.
Nooooooo....Cambia facoltà o università se sei giovane fai ancora in
tempo...fidatiiiiiii!!!!!!!!
Ciao
Vinsanto
Newsgroup: it.comp.lang.c++
Titolo: stringstream

Salve, è da poco che uso stringstream per fare conversioni di tipo, ed ho
trovato un caso in cui non riesco a trovare soluzione.
Vi pongo il problema.
in CMisura.h
namespace meteo {
    class CMisura{
        string sensore;  // contiene un codice alfanumerico del tipo
RI001205600TERMA
       void MisuraToCampo(odbc::CCampo *pCampo);
    }
}
in CMisura.h in CMisura.cc
    using namespace std;
    using namespace odbc;
    using namespace meteo;
    namespace meteo {
        stringstream sstr;
    }
    void CMisura::MisuraToCampo(CCampo *pCampo) {
        switch(...) {
            case 800:
                sstr.str("");
                sstr << this->sensore.substr(8, 3); // inserisco 700 nello
stream
                sstr >> *reinterpret_cast<float *>(pCampo->pDato); //
inserisco 700 in pDato
        }
    }
Il problema è che in pDato non mi trovo 700 come mi aspetto, ma 0.
Se invece scrivo:
*reinterpret_cast<float *>(pCampo->pDato) = atof(this->sensore.substr(8,
3).c_str());
mi ritrovo 700 come dovrebbe essere.
non riesco a capire perché con sstr non funziona.
Grazie in anticipo a chi potrà darmi una risposta.

 non riesco a capire perché con sstr non funziona.
Strano. A me il seguente codice stampa "600" (senza virgolette).
#include <sstream>
#include <iostream>
using namespace std;
struct {
	char pDato[4];
} Campo, *pCampo = &Campo;
int main() {
	stringstream ss;
	ss.str("");
	string sensore("RI001205600TERMA");
	ss << sensore.substr(8, 3);
	ss >> *reinterpret_cast<float *>(pCampo->pDato);
	cout << *reinterpret_cast<float *>(pCampo->pDato) << '\n';
	return 0;
}
Non avendo il tuo codice completo, non posso dirti di piu', se non di
stare attendo alle prestazioni della classe stringstream, che sono
scadenti, se usata solo per fare conversioni.
-- 
	Carlo Milanesi
 
http://digilander.libero.it/carlmila

 Non avendo il tuo codice completo, non posso dirti di piu', se non di
quello che manca è solo questo, la definizione di pDato in CCampo:
namespace odbc {
 class CCampo
 {
      friend inline ostream& operator<<(ostream& os, const CCampo &campo);
       void *pDato;   // puntatore al buffer contenente il dato
      UDWORD size;   // Size di pDato
}
 ostream& operator<<(ostream& os, const CCampo &campo)
 {
      if (campo.pDato != NULL) {
        switch (campo.tipoSql) {
            case SQL_SMALLINT:
                 os << " (short *)campo.pDato: " << *(short *)campo.pDato <<
'\n';
                 break;
        }
    }
}
}
Grazie per l'aiuto.
Newsgroup: it.comp.lang.c++
Titolo: Access memory occupied by variables using low level functions similar to inb outb

Hi,
I'd appreciate were someone to enlighten me with something I've been trying
for a while, unsuccessfully as you might already guess. A note, I'm very
inexperienced in linux and c/c++, I speak crappy english and I have a lower
IQ than G.B. (and no, it doesn't stand for Great Britain :-)
Based on feedback from previous attempts (cheers mate!) the story goes as
follows:
I try to store the memory location of a variable (in pointer perhaps?
*pI=&i) and then pass it as an argument to a function that accesses memory.
I thought that ioperm inb outb would do the trick. It turned out that all of
them have a 64k addresses limitation. Since I no more use a BBC Master for
day to day computing, I guess this imposes a dreadful limitation indeed.
Also these two have the nasty habbit of not liking pointers (unless
dereferenced *pI) for their arguments and this inarguably :-) is a problem,
since we want the address it points to and not the value of the variable.
So to summarise, the question is:
Hi, I've got a nice shiny variable impressively named as "int i".
The idea is to get it's memory address - will you tell me how? Please??? :-D
And then pass it into some sort of function that can write to this memory
address.
And after doing so toss to me some easy, commented code that does the trick
for the stupid bloody Greek that reads this (hi!)
I know you are impressed by the complexity of problem, but it wasn't long
time ago you were asking the stupid questions, isn't it?
Cheers
George

 wrote in message
news:5wyf8.69147$Ah1.8...@news2-win.server.ntlworld.com...

Newsgroup: it.comp.lang.c++
Titolo: Re: Explicit per i costruttori

 di explicit per i costruttori (o forse non lo trovo io).
Serve ad evitare che un costruttore con un parametro o più, se gli altri
hanno default, venga usato per una conversione implicita o automatica
col tipo di quel parametro quando non c'è operator= con quel tipo.
struct A {
        A(int i_) : i(i_) {};
        int i;
}
int f(A const& a) { return a.i; }
chiamando f(1) costruisce automaticamente o implicitamente un oggetto
anomino o temporaneo A(1) e lo passa ad f. Se il costruttore fosse
explicit, per ottenere lo stesso risultato dovresti fare f(A(1)) invece
di f(1).
A a(0);
a = 1;
anche qui viene costruito un A(1), dal momento che non c'è un
operator=(int).
L'utilità dipende da quello che fai. In genere dichiarare explicit un
costruttore ad un solo parametro o riconducibile a tale se gli altri
hanno default, aiuta ad evitare un automatismo che postresti non
desiderare.
Il classico esempio è il costruttore di un container con un parametro
int che indica la dimensione degli elementi allocati all'inizio. È anche
un operatore di conversione per gli int, ma non lo volevi come tale.
Saluti
-- 
int

 
La keyword 'explicit' ha senso nelle dichiarazioni di costruttori che 
posso essere invocati con un singolo parametro (cioè costruttori che
prevedono N parametri ed N-1 valori di default, con N >0 ).
Il costuttore dichiarato 'explicit' non può partecipare a una conversione
implicita. Quindi:
 struct A {  A() {}  A(int) {}  };
 struct B {  B() {}  explicit B(int) {}  };
 int main()
 {
  A a; 
  B b;
 
  a = 1; // compila; 1 viene implicitamente convertito in A(1)
  b = 1; // NON compila!
 }
Max

Salve,
sul mio libro, nonostante sia presente il alcuni esempi non cita l'utilita'
di explicit per i costruttori (o forse non lo trovo io).
Il seguente codice:
#include <iostream>
struct A {
 explicit A() {
  std::cout << "A()" << std::endl;
 }
};
int main() {
 A a;
 return 0;
}
cosa ha di particolare rispetto all'equivalente senza explicit?
Grazie

 L'utilità dipende da quello che fai.
Ok. Volevo sapere in pratica quando usarlo, grazie a tutti per info.
Newsgroup: it.comp.lang.c++
Titolo: [VC++6.0] Funzione id ritardo

Ciao a tutti,
    non mastico ancora bene il c++, quindi vi vorrei sottoporre il mio
problema:
devo eseguire due funzioni in sequenza ma con un certo ritardo (3ms) pensavo
a qualcosa come:
Funzione1;
Ritardo(xyz secondi);
Funzione2
 tuttavia non ho idea come fare, se usare due o piu cicli for annidati (non
che mi piaccia molto), o controllare l'orologio (sarebbe meglio).
Ringrazio in anticipo per l'interessamento,
        Luca.


ICQ #34602650

PS: non ti aspettare grandi precisioni.
Arghh!! Terribile! :-)
Purtroppo quello che Luca chiede non e' affatto semplice, se ha requisiti
drastici sulla reliability della temporizzazione. Usando la funzione
clock(), oltre a sprecare un sacco di risorse CPU non facendo nulla
(computer bloccato in ambienti monotask o a multitasking non preemptive,
spreco limitato in ambienti preemptive), la precisione ti posso garantire
che nel 99.9999% dei casi non sara' neanche lontanamente paragonabile ai 3
ms che venivano indicati.
Sleep() funzionerebbe ad hoc, se non fosse che a naso temo sia poco
probabile che si raggiunga una precisione del genere, per via dei quanti di
tempo assegnati a ciascun thread (mi riferisco a Win32 in particolare in
questo momento). Senz'altro sarebbe da provare alzando la priorita' del
thread, e forse anche del processo.
Se ancora non dovesse funzionare in modo abbastanza accurato, io proverei
con un timer multimediale (Win32-specific), che a sua volta internamente
crea un thread distinto a priorita' elevata (16 se non ricordo male, e'
passato del tempo da quando feci i test).
Ultima risorsa...un device driver che si programmi il clock a piacimento.
Ma forse e' un po' esagerato in questo caso.
Davide Marcato.
----------------------------------------------------
| -- Freelance International Consultant
| -- Win32/MFC/COM Development & Training
| -- Technical Writer & Speaker
----------------------------------------------------
| -- Email: 
mar...@programmers.net
| -- Web: 
http://www.DavideMarcato.com
----------------------------------------------------

 drastici sulla reliability della temporizzazione. 
Infatti, nel mio msg non ho dato eccessiva importanza (anzi, la giusta
importanza) al fatto che l'amico richiedeva temporizzazioni dell'ordine
del millisecondo, ovvero una precisione difficilmente realizzabile con i
comuni sistemi. 
I sistemi realtime credo esistano anche per questo :-)
PS: mi fa piacere rileggerti dopo qualche anno ;)

Newsgroup: it.comp.lang.c++
Titolo: cout formattato

int i=2;
printf ("%2d\n",i);
Come faccio in C++ ad ottenere lo stesso risultato ?
cout << ????
Saluti da Parma


#include <iomanip.h>
#include <iostream.h>
int main( )
{
	int i = 2;
	cout << setw(2) << i << endl;
	return 0;
}
E' tutto.
Dai un'occhiata ai manipolatori dello iostream.
-- 
---------------------------------------------------
 Osvaldo Ciurleo - LucOs Sistemi Informativi
  C/C++: Sviluppo - Formazione - Consulenza
 mailto:
osw...@tin.it
 
http://www.lucos.it/

                          cout << sqrt(2) << endl
Queste istruzioni funzionano   :-)
Saluti da Parma

Dai un'occhiata ai manipolatori dello iostream
Purtroppo la documentazione che ho a disposizione e' poco chiara e priva di
esempi  :-(
Saluti da Parma

 Saluti da Parma
Visual C++ 1.0 segue una versione piuttosto primitiva del
linguaggio C++, quando ancora non era stato definito nessuno 
standard. Quindi qualche warning o error sono purtroppo
inevitabili.

Newsgroup: it.comp.lang.c++
Titolo: [OT]decisioni

Stavo cercando informazioni su qualche algoritmo di facile implementazione
per uno schema decisionale. Ho un programma che a seconda dell'input
fornito, o anke di determinate sequenze di comandi, deve reagire in modo
diverso. Credo si possa sfruttare una struttura ad albero o un grafo, ma non
sono molto bravo ad usarle :) Qualcuno di voi ha altri suggerimenti?
--
Bruno

 wrote in message
news:9gsrgq$1jl$1...@nreadB.inwind.it...

Verrebbe da commentare che qualunque programma reagisce in modo diverso a
seconda dell'imput fornito.
Ma forse ho capito cosa chiedi. Solo che dal fatto stesso che lo chiedi, dal
modo, e dall'ammissione di non saper usare bene albri e grafi, devo dedurre che
la tua esperienza come programmatore non e' poi moltissima. Pero' la tua domanda
e' generica e non specifica, pertanto non esiste una risposta semplice. Un
consiglio che posso darti e' di procurarti senz'altro il testo della GoF
(Vlissides e altri) sui pattern. Cerca su Amazon Vlissides e Design Patterns e
troverai certamente il link. Poi anche la serie di testi che porta il titolo
"Pattern Languages of Program Design" contiene parecchio materiale che ti puo'
dare un'idea di quali soluzioni di design provate esistono per i piu' disparati
aspetti. Ovvio che alcuni libri conterranno materiale che a te specificatamente
interessa molto altri meno. Ma non dovrebbe essere molto difficile cominciare a
farsi un'idea.
Inoltre, sempre sui pattern, esistono vari testi disponibili sul web. Una volta
che sai cosa sono basta cercare un pochino. Troverai anche tutti i pattern del
libro della GoF (ma non credo che ci sia il testo, solo gli schemi e una
spiegazione "ridotta". Ottimo reference online se hai letto il libro, un po
scarso come sostituto del testo se non lo hai letto).
--
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

Infatti la mia esperienza come programmatore è solo scolastica ed è solo 3
anni che programmo i progetti di laboratorio dell'università.
Non avendo ancora preparato l'esame di Algoritmi e Strutture Dati il mio
problema è appunto trovare una soluzione che non sfrutti strutture dati
quali alberi o grafi, perchè ci sbatterei la testa per un tempo troppo lungo
da preferire l'abbandono dell'idea :)
Visto che sono stato come al solito troppo generico (è un mio difetto),
scendo nei particolari, dicendo che devo sviluppare un server FTP. Dato che
esiste un set ben preciso di comandi e una serie ben precisa di azioni da
svolgere in risposta a tali comandi, volevo sapere se esiste un modo carino
per organizzare ricezione e risposta, tenendo conto delle possibili
combinazioni (es. rename from seguito da rename to, sono due diversi comandi
che devono arrivare per forza in quest'ordine per essere eseguiti).
Grazie cmq per la risposta :)
Bruno
--
San Vegeta from Hell
"Andrea Ferro" <And...@UrkaDVD.it> ha scritto nel messaggio
news:9gte7r$hnf$1...@serv1.iunet.it...

Newsgroup: it.comp.lang.c++
Titolo: Deitel & Deitel

Ho trovato in biblioteca questo testo:
"C++ Fondamenti di Programmazione (e progettazione orientata ad oggetti con
UML)"
Autori: Deitel & Deitel.
E' questo il libro che consigliate, oppure e' un altro degli stessi autori?

 ha scritto nel messaggio
news:b00ss7$bug$1...@newsreader.mailgate.org...

E' esattamente questo.
Saluti,
ma3x

Newsgroup: it.comp.lang.c++
Titolo: Triangolo di Tartaglia col BC++ 3.1

 PASSEREBBE?
Spero di no.  Perche' non cerchi di capire se un elemento della riga
ha un qualche rapporto col precedente?
-- 
Maurizio Loreti                      
http://wwwcdf.pd.infn.it/~loreti/mlo.html
Un. of Padova, Dept. of Physics - Padova, Italy          
lor...@padova.infn.it

 > Ora, visto che sono molto pigro e convinto che il mio programma funzioni
più


Newsgroup: it.comp.lang.c++
Titolo: AIUTO! Perdo per strada le stringhe...

Salve, e' la prima volta che posto qui e vi prego di perdonare la mia
ignoranza. Avrei un piccolo problemino: praticamente quando devo leggere una
stringa, se questa contiene uno spazio viene troncata in quel punto.
Il mio prog (molto semplice) e':
void main(void)
{ char *str;
  cout << "Dimmi: ";
  cin >> str;
  cout << "Ecco: " << str << endl;
}
Che funziona cosi':
Dimmi: FRASE DI PROVA
Ecco: FRASE
Come posso fare? se non sbaglio era un problema che si verificava anche con
la scanf.
Grazie a chi mi puo' rispondere.
Saluti
CarMas

 stringa, se questa contiene uno spazio viene troncata in quel punto.
Prova ad utilizzare il metodo cin.get( char *ptr, int len, char delim =
'\n') o l'analogo cin.getline().
EMG

Devi utilizzare il metodo getline della classe istream:
istream& getline(char*, int, char = '\n');
istream& getline(signed char*, int, char = '\n');
istream& getline(unsigned char*, int, char = '\n');
The getline member function extracts up to the delimiter, puts the characters in the buffer, removes the delimiter from
the input stream and does not put the delimiter into the buffer.
es:
char Pippo[255];
cout.getline(Pippo);
Paolo
-----------------------------------------------------------------
  Paolo Marotta
  Computer Science, University of Pisa
  home:   
http://www.cli.di.unipi.it/~marotta
-----------------------------------------------------------------

Ecco: FRASE
cin.getline(str,256);
Pippuz

cout.getline(Pippo);
Ops.... ovviamente era
  cin.getline(Pippo)


cout.getline(Pippo);
Meglio ancora:
string pippo
getline(cout, pippo);
Cosi' non devi preoccuparti della
dimensione massima della riga:
l'oggetto di tipo string si occupera'
di allocare lo spazio necessario.
Oreste Notelli

getline(cout, pippo);
Hai ragione, ma non sono ancora abituato alla
libreria standard! :(
