mii-community/UsenetArchiveIT-conversations huggingface dataset:
Newsgroup: it.comp.lang.c++
Titolo: [REQ]Passaggio di argomenti: problema con gli array

Innanzitutto, grazie a tutti per il precedente aiuto.
Il mio nuovo problema e' altrettanto divertente... (se continua cosi' mi
rimetto a programmare in Assembler 68k!!!)
In pratica ho una funzione in una DLL che deve prendere come parametro un
array di strutture STOBJ (struttura interna creata da me).
Il problema e' che non voglio far dipendere la DLL dalla dimensione
dell'array; ad esempio, nel programma principale l'array e' dichiarato come
STOBJ udtStatici[10];
Non vorrei dover dichiarare il parametro nella funzione come STOBJ[10],
perche' mi toccherebbe cambiare la DLL ogni volta che ridimensiono l'array.
Tutto questo mi incasina terribilmente le dichiarazioni.
Ho provato a dichiarare il parametro come STOBJ* e poi nel programma
principale richiamo la funzione con &udtStatici,
ma il compilatore dice che non puo' passare da STOBJ* a STOBJ (*)[10]
Insomma, ho provato anche tutte le permutazioni, ma non ne trovo una che
faccia al caso mio.
In sintesi, avrei bisogno di sapere qual'e' il modo corretto per passare il
puntatore all'array alla DLL indipendentemente dalla dimensione.
E, tra le altre cose, avreste mica l'indirizzo di un sito in cui trovare un
bel manualone On-Line di C e C++, almeno la smetto di rompere le scatole a
voi ? (e' una minaccia ;-))
Scusate anccora, e grazie per l'eventuale aiuto (e sopportazione).

 ma il compilatore dice che non puo' passare da STOBJ* a STOBJ (*)[10]
Passa semplicemente udtStatici, senza l'ampersand davanti, e la menzione
dell'array si mutera` magicamente in un puntatore al primo elemento (un
altro dei tanti casini per cui e` meglio usare i vector, chiarissimi e
dotati della
giusta quantita` di potenza, invece degli array, complicati, misteriosi, di
bassissimo livello, e normalmente meno potenti delle tipiche necessita`).
Alex

Scusatemi per l' OT, ma non ho potuto resistere.
Vedo che c'è un tale che da suggerimenti come faceva un tempo Alex.
Certo anche lui predicava saggiamente l'uso della Libreria Standard e dunque
di std::vector<>.
Ma sì, ma sì :
C'è DI NUOVO ALEX MARTELLI !
Bentornato!
Forse è già un po' che sei nuovamente su questo NG ma io ho latitato un po'
perché mi mancavano le tue utili lezioni (in tutti i sensi...)
Seguirò con rinnovato entusiasmo.
---
Livio Cavallo

 Forse č gią un po' che sei nuovamente su questo NG ma io ho latitato un
po'
Si`, e` dai primi di ottobre, 4 mesi dunque, dopo circa 8 d'assenza.
Alex
Newsgroup: it.comp.lang.c++
Titolo: cin.get(); cin.sync()

Ciao,
il seguente programma:
// read a file into memory
#include <iostream>
using namespace std;
int main () {
  char first, second;
  cout << "Please, enter a word: ";
  first=cin.get();
  cin.sync();
  cout << "Please, enter another word: ";
  second=cin.get();
  cin.sync();
  cout << "The first word began by " << first << endl;
  cout << "The second word began by " << second << endl;
  return 0;
}
dà questo output:
Please, enter a word: c++
Please, enter another word: The first word began by c
The second word began by +
Perché non permette l'immissione della seconda parola?
Lavoro con il sistema operativo 
2.6.12-12mdk-i686-up-4GB
Grazie
-- 
Salvo
sal...@tiscali.it

 Perché non permette l'immissione della seconda parola?
Forse perché get() legge un solo carattere?
Ciao
  Andrea

Andrea Palazzi wrote:

Immettendo un solo carattere le cose non cambiano:
-------------
Please, enter a word: c
Please, enter another word: The first word began by c
The second word began by
------------
Notare la riga vuota.
-- 
Salvo
sal...@tiscali.it


Probabilmente "cin.sync();" non puliscie il buffer. Poi input contiene
anche il carattere '\n' alla fine. Si potrebbe provare:
cout << "Please, enter a word: ";
first=cin.get();
while( cin.get() != '\n' );
cout << "Please, enter another word: ";
second=cin.get();
...
Saluti.

 Saluti.
Le cose vanno un po' meglio.
Con la seguente variante:
// read a file into memory
#include <iostream>
using namespace std;
int main () {
  char first, second;
 
  cout << "Please, enter a word: ";
  do {
  first=cin.get();
  cin.sync();
  } 
  while( cin.get() != '\n' );
  cout << "Please, enter another word: ";
  second=cin.get();
  cin.sync();
  cout << "The first word began by " << first << endl;
  cout << "The second word began by " << second << endl;
  return 0;
}
Si ottiene:
-----
Please, enter a word: c++
Please, enter another word: d--
The first word began by +
The second word began by d
-----
Ma è andato perso il primo carattere.
-- 
Salvo
sal...@tiscali.it

 Saluti.
Grazie.
Problema risolto.
La variante:
// read a file into memory
#include <iostream>
using namespace std;
int main () {
  char first, second;
  cout << "Please, enter a word: ";
  first=cin.get();
  while( cin.get() != '\n' );
  cout << "Please, enter another word: ";
  second=cin.get();
  cin.sync();
  cout << "The first word began by " << first << endl;
  cout << "The second word began by " << second << endl;
  return 0;
}
fornisce l'output:
-------------
Please, enter a word: c++
Please, enter another word: d--
The first word began by c
The second word began by d
-------------
Ancora grazie, ciao
-- 
Salvo
sal...@tiscali.it
Newsgroup: it.comp.lang.c++
Titolo: OpenGL e DirectX



...

OpenGL č molto semplice (possono bastare gli esempi della S.Graphics), ma č
lento!


OpenGL č molto facile da usare (ho realizzato in poche ore un robottino che
cammina compie salti mortali, il tutto con degli effetti di luce che finora
non ho mai visto in nessun gioco...) e secondo me, possono bastare degli
esempi (della S.Graphics o quelli del VC++ 5), solo che č abbastanza
lenta...č questo l'unico motivo per cui chiunque potrebbe fare Quake...circa
100 volte piů lento!



Massimiliano 23 ha scritto nel messaggio ...




 lento!
Che sia lento o no dipende dall'hardware che usi, comunque la versione SGI
di OpenGl 
e' ottima.
Il libro che ti serve e' "OpenGl Programming Guide" ( il fantomatico
RedBook)
Miraccomando : DirectX NADA!

 oppure meglio le DirectX ?
DX vanno bene solo per i giochi.
OpenGL sono nate per applicazioni tipo Cad o in ogni caso dove hai
bisogno di rappresentazioni "precise", magari in raster oppure immagini
renderizzate con rotazioni in tempo reale. Se hai un buon sistema
operativo --leggi se hai qualsiasi cosa escluso Win95-- OpenGL e' una
scelta migliore.
Come libro ti suggerisco OpenGL Superbible della Waite Group Press.
Costa, pero', circa 175.000 lire ed e' in inglese.
Newsgroup: it.comp.lang.c++
Titolo: Informazione

Ciao, sono alle prime armi con il c++. Il programma che sto facendo
visualizza sul video una gran lista di informazione quando è in esecuzione e
per poterle leggere dovrei aggiungere una istruzione che lo fa arrestare,
per poi riprendendere premendo un tasto. Qualcuno mi sa dire questa
istruzione qual'è e in quale libreria ? Un altro problema è che non so
qual'è l'istruzione per cancellare ciò che compare a video. Qualcuno mi può
aiutare ?
Grazie

harm...@libero.it
 wrote:

credo che dovrebbe bastare
cin.getch();
Cmq è meglio se redirigi l'output su un filtro:
da dos:
tuo_comando | more
da linux:
tuo_comando | less (o anche | more, ma less è più bello :-)
Ciao Anto
-- 
Antonio Cuni, 19 anni, studente
Brainbench C++ Master: 4.6, higher than 98% of all previous test takers.
C Language: 3.32, higher than 79% of all previous test takers.
Guida C/C++ di Programmazione.it: 
http://cpp.programmazione.it

 wrote in message
fvthj9...@localhost.localdomain...


 tuo_comando | less (o anche | more, ma less č piů bello :-)
E perché?
Non basta solo che il programma si interrompa e riparta alla pressione di un
tasto?
ciao

 Grazie
se sei in windows
#include <conio.h>
int main () {
        clrscr();    // cancella tutto ciò che è nello schermo
    }

 Potresti essere più chiaro, mi fai un esempio ?
[anto@localhost anto]$  cat prova.cpp
int main()
{
  for(int i=0; i<1000; i++)
    cout << i << endl;
}
[anto@localhost anto]$ g++ -o prova prova.cpp
[anto@localhost anto]$ ./prova
        [un elenco velocissimo di numeri che non si fermano ]
[anto@localhost anto]$ ./prova | less
        [ puoi comodamente scorrere l'output usando i tasti freccia ]
[anto@localhost anto]$ ./prova | more
        [ ogni schermata si ferma e devi premere un tasto per continuare ]


 un tasto?
è scomodo dover modificare un programma ogni volta per poter esaminare 
l'output. A volte non è neanche neppure troppo semplice da implementare. 
Così è molto più comodo, non credi?


Newsgroup: it.comp.lang.c++
Titolo: how do i do this??

this is a segment of my code converted from VB4.0,  I need to know how to
creat a random number between 1 and 23 then use some "if, then" statements
to declare that a variable is this or that depending on what the number
turned out to be.  The number generated must be truly random, not the same
all the time.
{
DO
a_rand_rand1 = (Int((23 * Rnd) + 1));
If a_rand_rand1 = 1 Then a_var_rand1 = "a";
If a_rand_rand1 = 2 Then a_var_rand1 = "b";
If a_rand_rand1 = 3 Then a_var_rand1 = "c";
Thanks in advance for the help.
David Lenk, 
le...@pltpub.com
www.pltpub.com/lenkd

If a_rand_rand1 = 3 Then a_var_rand1 = "c";
a_var_rand1 = Chr(Asc("a") + 24 * Rnd)
Davide Quack
(Elimina THEDUCK per i reply)

Newsgroup: it.comp.lang.c++
Titolo: Interfaccia grafica windows!

Qualcuno sa dirmi se è semplice fare un programma anche piccolo e semplice ,
ma con l'interfaccia grafica di windows????
Se si avete i codici sorgenti???
Merci.

 Qualcuno sa dirmi se č semplice fare un programma anche piccolo e semplice

Newsgroup: it.comp.lang.c++
Titolo: Come includere una dll in VC++??

Io Vorrei usare le API function AlphaBlend(...) e TrasparentBlt(...) che
appatengono alla msimg32.dll
MSDN nella pagina relativa ad AlphaBlend, dice:
...
Import Library: Included as a resource in msimg32.dll
Come si fà ad includere msimg32.dll per poterla usare?
Grazie

 che appatengono alla msimg32.dll
Sei OT. Spostati su news://it.comp.programmare.win32
Qui si parla del C++ e della sua libreria standard, non di librerie
esterne o di come fare una cosa con un particolare compilatore.
-- 
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"

Newsgroup: it.comp.lang.c++
Titolo: errore passaggio vettore

Ho creato una classe giorno e quando creo una classe anno, andando a passare
al costruttore un array di giorni ecco quello che ottengo:
file://FILE Anno.cpp
#include "anno.h"
#include "giorno.h"
AnnoL::AnnoL(int ann,Giorno giorn[31][12] ){
  anno=ann;
  giorni=giorn;
}
file://FILE Anno.h
#include "giorno.h"
class Anno{
private:
 Giorno giorni[31][12];
 int anno;
public:
 Anno(int ann,Giorno giorn[31][12]);
};
error C2440: '=' : cannot convert from 'class Giorno [][12]' to 'class
Giorno [31][12]'
        There are no conversions to array types, although there are
conversions to references or pointers to arrays
Cosa c'è che non va?dovrebbe essere una cosa semplicissima eppure...forse
commetto qualche errore grave?

> AnnoL::AnnoL(int ann,Giorno giorn[31][12] ){
scusate, questo è :
Anno::Anno(int ann,Giorno giorn[31][12] ){
resta comunque l'errore...

 Giorno giorni[31][12];
giorni e' un array, non un puntatore, non puoi farlo puntare da un'altra
parte! (e sarebbe pure sbagliato farlo in quanto giorn potrebbe non esistere
a lungo!)
Se invece pensavi (piu' probabile) che l'operatore = riuscisse a copiare il
contenuto di giorn in giorni? Beh, ti sbagliavi, studiati gli array! Devi
copiare un elemento alla volta, oppure usare una funzione per copiare una
"zona" di memoria.
Alternativamente puoi usare std::vector invece degli array! (e tagliare la
testa al toro!)
Tommy
Newsgroup: it.comp.lang.c++
Titolo: Check This Out!!! 5944

cresedbogbzcxpvbxivyqupkrfgdopzyxzspvyysigckfexsggdskmnnlkyrrsbvhxqqjnxxodow
 ________________________________________ 
/ Smile, your abuseman will sodomize you \
\ as soon as possible!                   /
 ---------------------------------------- 
      \                _
       \              (_)
        \   ^__^       / \
         \  (oo)\_____/_\ \
            (__)\       ) /
                ||----w ((
                ||     ||>> 
Il Ghenio
-----
ZIO : Fun and games are over with. Anyone who dares
get in my way shall perish.
DIO ci salvi dagli ocx del Viral Basic.
-----

Personalmente non trovo la volgarita' molto meglio dello spam. Ti metti
sullo stesso piano di chi spamma. Tra l'altro la stragrande maggioranza
di questi messaggi sono inviati automaticamente, ed e' molto improbabile
che qualcuno legga le tue risposte. Se davvero vuoi combattere lo spam
(iniziativa per altro lodevolissima), piuttosto denuncia gli autori.
Ciao,
Nicola

Newsgroup: it.comp.lang.c++
Titolo: avrei bisogno di un aiuto urgente

mi è capitato il seguente problema e purtroppo ho una grande urgenza
di risolverlo:
mi sono stati consegnati dei file .txt organizzati su delle colonne (5
per la precisione) io dovrei modificare (tramite un programma in C++)i
dati della prima colonna creando una succession e ordinata di
numeri,mentre ora la colonna presenta intervalli ciclici.Per es.
colonna originale        come devo ottenerla
0                         0
1                         1
2                         2 
3                         3
4                         4
5                         5 
0                         6
1                         7
2                         8
3                         9
4                         10
5                         11
Purtoppo non conosco il modo di lavorare solo sulle colonne dei file.
Mi sapreste aiutare?grazie mille

 5                         11
Mah... non e' che forse ti e' sufficiente contare quanti sono gli elementi
della prima colonna e poi scrivere una semplice successione di interi della
stessa lunghezza nella seconda colonna?
Ciao
Newsgroup: it.comp.lang.c++
Titolo: [Forse OT] File dizionario

Non so se sono OT o meno. Sto cercando un file dizionario per fare un
test su un algoritmo per l'indicizzazione di un insieme di dati
statici. In pratica ero alla ricerca di un filettone che contenga al
suo interno l'elenco di tutte le parole (o buona parte) inglesi o
italiane, senza ripetizioni. Qualcuno sa dove posso dirigermi? 
Le ricerche su google hanno prodotto risultati disastrosi... 

 italiane, senza ripetizioni. Qualcuno sa dove posso dirigermi?
Qui:
 
http://src.maxim.comm2000.it/pub/dict/
Ci trovi:
  - 245000 parole italiane
  - 24000 parole inglesi
  - 1700 nomi propri italiani
  - 21700 cognomi italiani
Max


wrote:


Newsgroup: it.comp.lang.c++
Titolo: Problemi con la specializzazione di un template

Ciao a tutti,
secondo voi e' corretto/possibile specializzare un template in base ad
un altro template? Ad esempio:
// Il template che diventa argomento
template <class C> class B {
    public:
        C get() { return C(); }
};
// Il template "di default"
template <class C> class A {
    public:
        A();
        A(const A & a);
        C get() { return c; }
    private:
        C c;
};
// La versione specializzata per B
template <class C> class A<B<C> > {
    public:
        A();
        A(const A<B<C> > & a);
        C get() { return c.get(); }
    private:
        B<C> c;
};
template <class C> A<C>::A() {}
template <class C> A<B<C> >::A() {}
template <class C> A<C>::A(const A & a) : c(a.c) {}
template <class C> A<B<C> >::A(const A<B<C> > & a) : c(a.c) {}
int main()
{
  A<B<int> > a1;
  A<B<int> > a2(a1);
  int v = a2.get();
}
Lo chiedo perche' il compilatore che uso (Borland C++ Builder 4) mi da
messaggi
di errore del tipo "E2316: 'A<B<C> >::A()' is not a member of 'A<B<C> >'
sulle funzioni membro specializzate, e non ho a disposizione altre
piattaforme per avere controprove. Mi domando quindi se cio' che cerco
di fare e' possibile (ovvero sbaglio la sintassi) o se e' illegale. Se
e' un problema del Builder l'ho gia' chiesto ai newsgroup Borland (prima
che qualcuno mi rigiri il mio stesso anti-OT), ma non ho ancora avuto
risposta.
Ciao,
Nicola

 
-- 
"Time flies like an arrow; fruit flies like a banana."

 un altro template?
Il DJGPP lo compila perfettamente.
EMG

un altro template? Ad esempio:
Non ho approfondito la cosa piu` di tanto, pero` ritengo che si tratti
di un limite del compilatore. Gia` il suo predecessore aveva non pochi
limiti coi template (ora almeno in parte superati).
Paolo
-----------------------------------------------
  Paolo Marotta
  Computer Science, University of Pisa
  home:   
http://www.cli.di.unipi.it/~marotta
-----------------------------------------------
Newsgroup: it.comp.lang.c++
Titolo: libro

Deve comprarmi un libro per imparare il linguaggio c++, mi devo comprare un
libro che parli di c++ o di visual c++.net?
Questo problema è nato dalla necessità di usare .net

 ha scritto nel messaggio
news:RzGD9.43856$744.1...@news1.tin.it...

Se devi usare .net ti consiglio un libro su visual c++ .net in quanto parla
anche delle librerie e delle classi del framework di casa Microsoft oltre
che delle classi standard del c++.
Buono studio,
Nids

Ma chi studia il C++ fa uno studio generale del linguaggio?

 Ma chi studia il C++ fa uno studio generale del linguaggio?
Si spera che faccia uno studio approfondito :-))
Comunque sei sicuro di voler usare il C++?
Non è esattamente il linguaggio più banale da imparare.
Se la tua necessità è .NET e non il C++ personalmente ti
consiglierei di rivolgerti a un linguaggio che ti faccia
perdere meno tempo per impararlo, chessò il C#...
--
Gerolamo

Newsgroup: it.comp.lang.c++
Titolo: scope di using namespace

Mettendo
using namespace std;
all'inizio di un file esso vale solo per quello o anche per tutti i file 
che includerà?
matteo!

matteo.desimone wrote:

dipende dove lo metti ^^
1)se scrivi in un cpp
using namespace blah;
#include "qualcosa.h"
vale anche per qualcosa .h
2) se lo metti in un hpp e includi quell'hpp in un altro posto, vale per 
tutti gli include successivi e per il file che lo include
3) se lo metti in un cpp dopo tutti gli include vale per tutto il .cpp
4) se non lo usi con scope globale, vale finché resta in scope
... è buona norma evitare come la peste 1 e 2
sbirish.

 ... è buona norma evitare come la peste 1 e 2
Grazie. Io tendo a scrivere esplicitamente std:: dove serve per evitare 
problemi ma ho in mano un codice che e' vecchio o scritto sotto pesante 
uso di allucinogeni e senza un solo commento che non sia frutto di 
accostamento criptico di parole generiche (es. "Non ci sono più le mezze 
stagioni", "La funzione Calcola(), calcola un numero" etc) :(
Quindi devo rendere tutto "almeno" accessibile da mio codice e sono 
costretto ad usare degli escamotage: devo essere sicuro di quello che 
faccio altrimenti mi perdo per strada e non ritrovo più gli errori :-D
Grazie della dritta,
matteo!
Newsgroup: it.comp.lang.c++
Titolo: ottenere l'indice di un dato elemento in un std::vector

Ciao a tutti
Ho definito una classe Object che contiene tra le altre cose un membro, 
name_ che e' una stringa, con i relativi metodi di accesso.
class Object
{
public:
     ...
//access
     std::string Object::name()
     {
         return name_;
     }
private:
//members
     std::string name_;
     ...
};
Ora, nella classe Content ho implementato la get_index(), che data una 
stringa, mi restituisce il suo indice nel vettore objects_
class Content
{
public:
     ...
     int Content::get_index(const std::string& obj_to_find)
     {
         for( int i = 0; i< (int)objects_.size(); ++i)
         {
             if(objects_[i].name() == obj_to_find)
                 return i;
         }
         return -1;
     }
private:
//members
     std::vector<Object> objects_;
};
Quello che vi chiedo e':
E' questa la via migliore per implementare la get_index?
O esiste un modo piu' efficiente?
Grazie
Francesco

 wrote in message 
news:46eacbe9$0$17943$4faf...@reader1.news.tin.it...

Questo dovrebbe essere migliore e piu' efficiente
#include <iostream>
#include <string>
#include <vector>
#include <algorithm>
class Object
{
public:
 Object( const std::string& str ) : name_(str) {}
 bool operator==( const std::string& str ) { return (name_ == str); }
private:
     std::string name_;
 };
class Content
{
typedef std::vector<Object> ObjectVector_t;
public:
 Content() { //solo per fare qualche test
     objects_.push_back( Object("test") );
     objects_.push_back( Object("test2") );
     objects_.push_back( Object("test3") );
     objects_.push_back( Object("test4") );
    }
     int Content::get_index(const std::string& obj_to_find)
     {
             ObjectVector_t::iterator i = std::find( objects_.begin(), 
objects_.end(), obj_to_find );
             if( i != objects_.end() )
                  return (int)( i - objects_.begin() );
             return -1;
     }
private:
     ObjectVector_t objects_;
};
int main()
{
    Content c;
    std::cout << c.get_index("test4") << "\n";
    std::cout << c.get_index("testinvalid") << "\n";
    return 0;
}

Newsgroup: it.comp.lang.c++
Titolo: [OT] Cos'e' il C# ?

Ciao e scusate la domanda.

 Ciao e scusate la domanda.
A quanto ho capito è una specie di minestrone di C++ e Java, ma
completamente non portabile, perchè proprietario Microsoft. Comunque se
guardi alcuni post indietro, c'è un lungo dibattito sull'argomento.
Ciao, 
Cecco



Non e' esatto che non sia portabile visto che aderisce alla .NET
e visto che anche la GNU ha un progetto aperto per far si
che anche il GCC generi file IL ( intermediate language).
Ciao
Gaetano.
-- 
Posted from 
dell-01.mm.eutelsat.org
 [194.214.173.17] 
via Mailgate.ORG Server - 
http://www.Mailgate.ORG

che anche il GCC generi file IL ( intermediate language).
Esistono vari progetti per il porting della piattaforma .NET.
Uno dei progetti più famosi e sviluppati è Mono, progetto portato
avanti dalla Ximian (
www.go-mono.org
).
--
Rhymes - 
rhy...@myself.com
http://www.foxhound-games.it
"Sapete cosa fa un InputStream quando
gli si racconta una barzelletta? Reader..."
Newsgroup: it.comp.lang.c++
Titolo: Info sul Visual C++

Vorrei delle informazioni sul Visual C++.
 
L'edizione "Express" e' gratuita?
L'edizione "Express" puo' essere usata per sviluppare software COMMERCIALE?
Qual'e' l'ultima versione?
Il Visual C++ supporta la programmazione visuale e per componenti?
 
 

 Il Visual C++ supporta la programmazione visuale e per componenti?
 
Questo non lo so.
 
 
 
  bye
	av.

aggiungo
ultima versione: 2013
per la programmazione visuale in C++ bisogna utilizzare una libreria esterna, per esempio Qt.
ciao


M$ non è capace di avere una propria libreria ?
Come mai questa cosa abbastanza strana ?
Visto che siamo in tema di framework per Gui segnalo ultimate++
Framework + ide sotto licenza BSD e multipiattaforma (windows e linux - 
per il Mac è in lavorazione)
La sto utilizzando per la costruzione di un applicativo proprio in 
questo periodo e ne sono soddisfatto
 


La versione Express, che è gratuita, che limitazioni ha rispetto alla
versione a pagamento?
 
 


Che domanda
Comunque non lo so, non uso visual c++ (c'è l' ho installato ma non lo uso)
Uso l' ide di ultimate++ sotto ubuntu (e poi porterò l' applicativo 
sotto windows)
Ti consiglio di cercare con un motore di ricerca o sul sito di M$ per la 
risposta se non lo hai già fatto
 
 

 
http://msdn.microsoft.com/en-us/library/vstudio/hs24szh9%28v=vs.110%29.aspx
 
 
  bye
	av.

Newsgroup: it.comp.lang.c++
Titolo: Interfaccia dos

Come potrei fare per creare un'interfaccia dos (tipo dosshell), mi devo
studiare prima il manuale del dos? Che librerie ci sono a disposizione? Devo
andare a chiedere su it.comp.programmare.win32? : - ))
Grazie

...

Secondo me sarebbe meglio non guardare alle librerie Win32 dato che la
maggior parte funziona solo se win è avviato.
Ti suggerisco il compilatore DJGPP ottimo ed è provvisto di molte funzioni
che potrebbero interessarti inoltre la compatibilità con il DOS è certa
(l'ho usato per programmi che girano su 386)
Newsgroup: it.comp.lang.c++
Titolo: Update menu in MFC

Salve a tutti,
lavoro con VC++ e MFC. Per gestire l'attivazione e la disattivazione delle
diverse voci del menu (e dei relativi pulsanti della toolbar) ho utilizzato
il classico metodo del messaggio UPDATE_COMMAND_UI.
Per esempio:
void CTemplateFrame::OnUpdateCopiablocco(CCmdUI* pCmdUI)
{
    pCmdUI->Enable(FlagCopia);
}
Leggendo la documentazione mi e' parso di capire che l'aggiornamento dello
stato dei diversi comandi di menu avviene quando il sistema e' idle.
Alcuni miei comandi pero' lanciano funzioni che impiegano alcuni secondi per
essere completati. Puo' succedere quindi che l'utente prema piu' volte un
pulsante della toolbar mentre e' ancora in esecuzione la prima funzione.
Questo mi causa dei malfunzionamenti.
C'e' un modo per forzare l'aggiornamento dello stato dei menu senza
attendere che lo faccia il framework?
 Nell'esempio precedente vorrei cioč impostare la variabile FlagCopia a
FALSE e provocare in qualche modo l'esecuzione di OnUpdateCopiablocco in
modo da disabilitare il relativo tasto.
Grazie a tutti  per l'aiuto.
Ciao.
Vittorio.

il classico metodo del messaggio UPDATE_COMMAND_UI.
Sei OT qui. Spostati su it.comp.programmare.win32

Ciao,
Questo newsgroup si occupa del linguaggio C++ in quanto tale, e non di
aspetti specifici di particolari implementazioni. Per questo non e' il
posto piu' adatto per porre domande specifiche come la tua.
Potresti avere piu' fortuna su uno dei seguenti gruppi:
Per Win32 (95, 98, NT): it.comp.programmare.win32
Per Dos/Win 3.x: it.comp.os.dos
Per Linux:	it.comp.os.linux.development
Per C++Builder:	i gruppi borland.public.cppbuilder.*, disponibili sul
		server 
newsgroups.borland.com
 (prevalentemente in 
		inglese, ma si puo' postare anche in italiano)
Grazie,
Nicola Musatti

Newsgroup: it.comp.lang.c++
Titolo: persistenza delle classi

ho sentito parlare da qualcuno di "tecnica della persistenza delle
classi del c++" per salvare i dati contenuti in una classe
di che si tratta?
]\/[ad]\/[age
"Un Maestro nell'arte della vita, non fa nessuna precisa distinzione tra lavoro
e gioco, fatica e riposo, mente e corpo, educazione e ricreazione. 
Insegue semplicemente la sua visione di Eccellenza attraverso qualunque cosa sta facendo e lascia agli altri decidere se sta lavorando o giocando. A lui sembra sempre che sta facendo entrambe le cose." - Anonimo.
.-~-.-~-. 
www.madmagelab.cjb.net
 .-~-.-~-.

di che si tratta?
Non ne sono sicuro (ti parlo in base a quello che e' il
significato della classe TPersistent della gerarchia VCL),
ma credo si tratti della capacita' di memorizzare in modo
persistente (es. su file) il contenuto della classe, inteso
come il suo stato interno (i valori delle sue proprieta').
-- 
The Follet

 classi del c++" per salvare i dati contenuti in una classe
Più o meno è una tecnica che ti permette di memorizzare i membri di una 
classe all'atto della 'distruzione' e poi di ricaricarli quando viene 
istanziata.
[OT] Con MFC, ad esempio, si ottiene con la "Serialize".
-- 
Luc.
Newsgroup: it.comp.lang.c++
Titolo: VT-100

Salve,
Stiamo cercando informazioni sul VT-100 o addirittura
un OCX o libreria che ne permetta l'emulazione.
Qualcuno sa dove si possono reperire???
--
Best regards by Pino.
---------------------------------------------------
   /\/\  SINDEL S.r.l. - Genova - Italy
|--------------------------------------------------
| Giuseppe Talpa
| Tel:  
++39 0103727353
| Fax:  
++39 0103727342
| E-mail 
pin...@sindel.it
| 
http://www.sindel.it
---------------------------------------------------

 
linux

 un OCX o libreria che ne permetta l'emulazione.
He he he, carina la risposta Linux, e a conti fatti nemmeno troppo errata. 
Potreste reperire le informazioni in /etc/termcap e nei sorgenti di XTerm.
Non mi pare  che qualcuno abbia fatto   un OCX (alka  selzer dopo aver
detto il nome) o almeno non ne ho mai sentito.
Telnet.exe e molti emulatori  terminale sono  vt100 compatibili, e  di
questi emulatori alcuni sono distribuiti coi sorgenti.
Come documentazione cartacea credo che vadano bene i manuali dei Vt320
di Digital.
o   oooooo	Gian Uberto Lauri        "So, are you working on finding
      o    o	
sa...@dei.unipd.it
        that bug *now* or leaving it until
     o o				  later?" - "Yes!"
Newsgroup: it.comp.lang.c++
Titolo: ho comprato questo libro, comè?

C++ Fondamenti di programmazione
Deitel & Deitel
Apogeo
E' buono secondo voi?

 ha scritto nel
messaggio news:DOWt9.36536$TD1.1...@news2.tin.it...

Si!
Ciao
Francesco

 ha scritto nel
messaggio news:DOWt9.36536$TD1.1...@news2.tin.it...

Stampo americano, molto buono ed inprontato sugli esempi, io personalmente
lo ho usato per l'esame di Fondamenti di Informatica 1, quindi te lo
consiglio, però se puoi cerca di integrarlo con qualche corso più teorico,
perchè altrimenti rischi di avere un pò di superficialità alle volte.
Gabriele

 wrote in message
news:DOWt9.36536$TD1.1...@news2.tin.it...


Nel boschetto della mia fantasia c'è anche Roberto Pazzini, che ha scritto:

Io sono un niubbo, ma lo sto trovando davvero ottimo.
Parte dalle basi, ed è abbastanza graduale, aiutando
ad imparare tramite esempi chiari.
--
Lupin85©
Azzurranet IRC: @#afiad, @#fils, @#pokegalaxy - ICQ: 91528290
Mail: Remove PAN to contact me
- "It is not important what you believe, only that you believe." -

Newsgroup: it.comp.lang.c++
Titolo: Borland acquisita

E' vero che la Borland sara' acquisita da un'altra societa' e in futuro
non si potranno trovare aggiornamenti dei compilatori Borland?
O sono solo delle voci false?
		Andrea


Per quel che ne so sono delle voci false.
Se, in ogni caso, venisse acquisita, sono sicuro che verrebbero mantenuti i
prodotti che le hanno dato il successo in questi ultimi tempi, ovvero i suoi
compilatori (Delphi, C++ Builder e Jbuilder x ultimo)
Ciao,
Stefano

Se intendi Inprise l'unico prodotto abbandonato e' stato il
Borland C++ e le OWL.
La novita' e che Microsoft ha comprato delle quote di Inprise
(mi sembra sul 10%) :(((
    mauro

 wrote in message
news:7o9ier$m0n$1...@nslave1.tin.it...

Newsgroup: it.comp.lang.c++
Titolo: funzione replace string

Sto cercando di imparare c++
ho scritto questa funzione per sostituire una o piu' parti di una stringa.
Senza utilizzare string come si potrebbe ridurre e quanto è
inefficiente in termini di prestazioni questa funzione?
Grazie a tutti
Replace("massimo","s", "---");
char *Replace(char *s, char *fc, char *sc)
{
     int ic=0;
     int imd=0;
     char *r;
     r = (char*)(malloc(strlen(s)));
     for(int i=0;i<=strlen(s);i++){
        if(memcmp(fc, &s[i], strlen(fc)) == 0)
          {
           for(int ig=0;ig<strlen(sc);ig++)
           {
            imd+=strlen(sc)-1;
            r = (char*)(realloc(r, strlen(s) + imd));
            r[ic] = sc[ig];
            ic++;
           }
           i+=strlen(fc)-1;
          }
        else
          {
           r[ic] = s[i];
           ic++;
          }
     }
     return r;
} 

mi rispondo da solo questa va 5000 volte piu' veloce... :)
 Replace("massimo","s", "---");
char *Replace(char *s, char *fc, char *sc)
{
     unsigned int ic=0;
     unsigned int sclen=strlen(sc);
     unsigned int fclen=strlen(fc);
     unsigned int slen=strlen(s);
     char *r;
     r = (char*)(malloc(50000));
     if(fclen==0)return s;
     for(int i=0;i<=strlen(s);i++){
        if(memcmp(fc, &s[i], strlen(fc)) == 0)
          {
           memcpy(&r[ic], sc, sclen);
           ic+=sclen;
           i+=fclen-1;


Newsgroup: it.comp.lang.c++
Titolo: Domanda su ECCEZIONI

Salve a tutti,
vorrei porvi una domanda che sa un po' di ingegneria del software:
le eccezioni generate da una classe (ad esempio un array dinamico) dove
vanno poste?
Nel senso: vanno poste in un file a parte (anzi due, considerando header ed
implementazione) oppure nello stesso file?
Oppure, cambiando approccio (io opterei per questo...), vanno dichiarate
come classi "nested" della classe a cui si riferiscono (e magari anche
friend, per poter accedere ai dati private)?
Qual è la soluzione migliore?
Vi ringrazio anticipatamente,
saluti,
Sergio

 wrote in message
news:IX3H9.24053$
fa.8...@news1.tin.it

Secondo me devi ragionare almeno concettualmente a moduli, nel senso che
presumibilmente avrai alcune eccezioni di portata generale ed altre
strettamente legate a piccoli gruppi di classi. Da qui la scelta di dove
collocarle.
Personalmente eviterei di definirle all'interno di altre classi, anche
se sono lanciate esclusivamente da queste, e potrebbe convenire tenerle
sempre in sorgenti separati. Dopo tutto non e' detto che la funzione che
gestisce l'errore abbia necessita' di conoscere completamente il
contesto che l'ha generato.
In ogni caso, come sempre, non esistono regole universali.
Ciao,
Nicola
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

 In ogni caso, come sempre, non esistono regole universali.
E questa lo č?
Cordialmente,
    Bertrand Russel ;)
--
"Computer science is not about computers any more than astronomy
is about telescopes." -- EW Dijkstra

 E questa lo è?
no, e' un assioma
Newsgroup: it.comp.lang.c++
Titolo: Scrivere su file con C++ Builder

Ho cominciato da qualche giorno a lavorare in C++ Builder (versione 3.0). La
finestra OpenDialog mi restituisce un tipo AnsiString. Come posso
trasformarlo in char[] per salvare il nome del file?
--
Posted from 
net.isa.it
 [194.243.134.2]
via Mailgate.ORG Server - 
http://www.mailgate.org

esiste la funzione membro c_str() della classe TAnsiString.
Inferno.

Ciao,
basta che usi il metodo c_str() della classe AnsiString, che restituisce la
stinga sottoforma di char*.

Newsgroup: it.comp.lang.c++
Titolo: Nuovo adepto

Ragazzi finalmente vi ho trovato, è fantastico un news tutto per noi, e vai.

Ragazzi finalmente vi ho trovato, è fantastico un news tutto per noi, e vai.
Non ci siamo mai mossi! ;)
Paolo
-----------------------------------------------------------------
  Paolo Marotta
  Computer Science, University of Pisa
  home:   
http://www.cli.di.unipi.it/~marotta
-----------------------------------------------------------------
Newsgroup: it.comp.lang.c++
Titolo: Stampa di testo con stampante e gestione database

Aiuto non so come stampare del testo con la stampante da un programma
realizzato con Borland C++ 5.01.
Ci sono delle librerie per la gestione di records di database (Salvataggio
su file ed indicizzazione)
GRAZIE

 wrote in message
8756lb$bc9$1...@nslave1.tin.it...

Se stai sotto dos puoi provare ad usare il canale standard sulla stampante
usando
la classe fstream.
Il numero del canale è 4 quindi basta fare ad esempio
ofstream prn(4);
Manlio.

Newsgroup: it.comp.lang.c++
Titolo: WIN32 leggi registro

Gentilmente, qualcuno sa come leggere una chiave di tipo stringa nel
registro di Windows?
Io ci ho provato ma  anche se la chiave č valorizzata correttamente viene
restituita una
stringa incomprensibile. Probabilmente utilizzo male le chiamate alle
funzioni.
Sarebbe gradito un esempio, un testo in rete oppure un link di riferimento
per
documentarmi.
Grazie anticipatamente.
Andrea DALIA :-)

registro di Windows?
Qui sei ot... ma il tuo subject ti puņ aiutare a trovare il NG
corretto 8)
Luc.

Però io devo leggere la chiave n questione tramite del codice C++.
Perchè sono OT?
Nel caso ci sia una motivazione valida in quale NG devo scivere?
Grazie.
Andrea Dalia

 Nel caso ci sia una motivazione valida in quale NG devo scivere?
La netiquette dice che prima di postare in un NG devi leggere il manifesto
relativo. Se lo avessi fatto sapresti che in questo gruppo si parla del C++ in
quanto tale e non di librerie specifiche di sistema. Dato che la tua domanda
riguarda una API di Windows sei chiaramente OT. O come ti e' stato detto
dovresti postare in un NG che parla di programmazione Windows.
Leggi il manifesto.
--
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

registro di Windows?
http://www.codeproject.com/system/
scorri la pagina verso il basso fino a trovare la sezione "Registry"
(dopo Cryptography e General).
Qualcosa di buono per te c'e' di sicuro.
ciao
Fabio(lo)

>Leggi il manifesto.
Sono pienamente daccordo, ma dove si trovano questi "manifesti" ?
(sono nuovo dei NG, ho appena risposto al quesito su win32 perchè mi
sembrava di fare cosa buona e giusta :-)) 
Fabio(lo)

Il Gruppo Coordinamento NEWS-IT

Newsgroup: it.comp.lang.c++
Titolo: [API] Me ne suggerite una?

...


Newsgroup: it.comp.lang.c++
Titolo: Qualcosa per iniziare?

Qualcuno mi potrebbe consigliare qualche sito o qualche manuale per iniziare
ad imparare il C++ da zero?
--------------------------------
Inviato via 
http://usenet.libero.it

Thinking in C++: 
http://www.bruceeckel.com/
traduzione:
http://www.umbertosorbo.it/modules.php?name=Downloads&d_op=viewdownload&cid=
1
qualche sito sempre utile:
http://www.gameprog.it/
http://www.programmazione.it/
http://www.ironcode.net/
http://code.box.sk/
http://blacksun.box.sk/
naturalmente non scordare 
http://www.google.com/
 che può rispondere al 99%
delle tue domande.
Ciao!

Newsgroup: it.comp.lang.c++
Titolo: Strano errore in compilazione

Ciao a tutti,
sto testando una libreria open source che ho scaricato e compilato 
(sotto windows) come una .dll. Come primo passo ho creato una 
applicazione banalissima "testlib.cpp" che altro non fa che stampare a 
video l'ora corrente. Compilando (gcc sotto cygwin, su una macchina con 
WinXP) ottengo:
PS D:\Documentazione\POCO> g++ testlib.cpp -I 
D:\Documentazione\POCO\src\Foundation\include -o testlib.exe
/cygdrive/c/DOCUME~1/Giulio/IMPOST~1/Temp/cch9caRc.o:testlib.cpp:(.text+0x170): 
undefined reference to `Poco::DateTime::DateTime()'
/cygdrive/c/DOCUME~1/Giulio/IMPOST~1/Temp/cch9caRc.o:testlib.cpp:(.text+0x1ab): 
undefined reference to `Poco::DateTime::~DateTime()'
/cygdrive/c/DOCUME~1/Giulio/IMPOST~1/Temp/cch9caRc.o:testlib.cpp:(.text+0x1d5): 
undefined reference to `Poco::DateTime::~DateTime()'
collect2: ld returned 1 exit status
Sarà che sono un niubbo, ma... potreste darmi qualche dritta? :-)
Ciao e grazie (e buon appetito, data l'ora),
Giulio
-- 
OnAir:

 Sarà che sono un niubbo, ma... potreste darmi qualche dritta? :-)
Dovresti postare il codice di testlib.cpp
Ad una prima occhiata pare che il linker non sia in grado
di trovare il costruttore e il distruttore della classe
DateTime (evidentemente tu tenti di istanziare oggetti di
tale classe nel tuo codice).
 
Ciao,
Marco

 tale classe nel tuo codice).
Già, ma questo si sta rivelando un *grosso* problema!
Per compilare (g++ sotto ctgwin, su una macchina con WinXP) digito 
questo comando:
 >> g++ testlib.cc -o testlib.exe -I .\POCO\Foundation\include
in cui la direttiva -I con conseguente path permette alc ompilatore di 
trovare i files .h referenziati (giusto?). Così facendo ho gli errori di 
cui dicevo nel primo post. Ora, se provo a dare una direttiva -l per 
fargli linkare i files .lib ottengo sempre un messaggio che dice che non 
esiste il file nel percorso indicato. Onestamente non so proprio cosa 
fare. In C (con il quale ho un minimo di confidenza in più) mi basta fare:
 >> gcc mialibreria.lib testlib.c -o testlib.exe
ma con il g++ proprio non riesco a capire cosa faccia di sbagliato.
Ciao e grazie,
Giulio
-- 
OnAir: Mario del Monaco - "Largo al factotum" da "Il Barbiere di 
Siviglia" di Gioacchino Rossini

 
Devi linkare la libreria che stai utilizzando con le opzioni -l (per 
linkare la libreria) ed -L (per specificare un percorso della lib)
g++ -L/mia/libreria/ -llib test.cpp -o prova.exe

 ma con il g++ proprio non riesco a capire cosa faccia di sbagliato.
ci dovrebbe essere una opzione per dirgli qual'e' la libreria, anche se
non so se accetta .lib. L'opzione non la ricordo ma nella documentazione
del g++ dovrebbe esserci.
 
Ciao,
Marco
Newsgroup: it.comp.lang.c++
Titolo: sintassi del C++

Dove posso trovare la sintassi del C++ standard?
Ho cercato un bel po' trovando solo references proprietarie, articoli con 
esempi...
Cercavo la sintassi nuda e cruda.
ciao...
-- 
__________________________________
"Ama e fai c'ho che vuoi".... 
__________________________________

 Cercavo la sintassi nuda e cruda.
Qui: 
http://webstore.ansi.org/ansidocstore/product.asp?sku=INCITS%2FISO%2FIEC+14882%2D1998
Ciao,
Nicola

Newsgroup: it.comp.lang.c++
Titolo: HELP: VC++ errore C1010

Scusate se disturbo, non sono un abituale visitatore di questo NG, ma ho un
problema con il Visual C++ 6.0 (con SP2).
Stavo cercando di sviluppare un semplice programmino che mi permettesse di
modificare un database tramite ADO (premetto che in VBScript non ho nessun
porblema a farlo), purtroppo con il VC++ ho alcuni problemi.
Stavo cercando di utilizzare un programmino di prova presente nella
documentazione "Esercitazione di ADO (VC++)" (MSDN) che comincia cosě:
#define INITGUID
#import "c:\Program Files\Common Files\System\ADO\msado15.dll"
   no_namespace rename("EOF", "EndOfFile")
#include <stdio.h>
#include "icrsint.h"
Purtroppo ottengo il seguente errore:
C:\program files\microsoft visual
studio\myprojects\databaseaccess\databaseaccess.cpp(133) : fatal error
C1010: unexpected end of file while looking for precompiled header directive
Error executing cl.exe.
C'č qualcuno che gentilmente mi sa dare qualche indicazione su cosa puň
essere?
Grazie in anticipo.
Davide Granzotto

Davide Granzotto
Quell'errore si rifrisce agli header precompilati (in pratica dice di non
aver riconosciuto come valido l'header precompilato che gli hai indicato).
Probabilmente nei settaggi del progetto hai impostato un header non
precompilato. Comunque se il problema persiste basta disattivare totalmente
l'opzione degli header precompilati.
Ciao, Giuseppe
Newsgroup: it.comp.lang.c++
Titolo: Esercizi su classi e oggetti, dove li trovo???

Ho appena finito di studiare quella parte del libro che riguarda le CLASSI e
gli OGGETTI; ora faccio una ripassata generale e scrivo qualche riga di
codice, per fare pratica.
Volevo chiedere a voi se conosciete qualche sito da cui prelevare righe di
codice esplicative (sempre su classi e oggetti) o meglio ancora veri e
propri esercizi!!
Gli argomenti che ho studiato sono:
1. Le classi;
2. Le strutture e le classi;
3. Le unioni e le classi;
4. Le funzioni friend;
5. Le classi friend;
6. Le funzioni inline;
7. Definizione di funzioni inline all'interno di una classe;
8. I costruttori parametrizzati;
9. I membri static di una classe;
10. Quando vengono eseguiti i costruttori e i ditruttori?;
11. L'operatore di risoluzione del campo d'azione;
12. La nidificazione delle classi;
13. Le classi locali;
14. Il passaggio di oggetti a funzioni;
15. La restituzione di oggetti;
16. L'assegnamento di oggetti.
Aiutatemi, altrimenti passo i pomeriggi a studiare ma poi alla fine tra le
mani non mi trovo neanche un po' di pratica!!
sent by .....
(o)<<<<<<<=>>>>>>>>(o)
  \\  +-------------------+  //    « Sono stato nessuno,
   )) |   }/* SgRuNg */{   | ((              per diventare qualcuno. »
  //  +-------------------+  \\
(o)<<<<<<<=>>>>>>>>(o)
=================================================
In principio, il file era informe e vuoto,
e il vuoto era sulla faccia dei bit.
E le Dita dell'Autore si mossero sulla faccia della tastiera.
E l'Autore disse "Siano le parole!",
e le parole furono.
=================================================

 wrote :
| Volevo chiedere a voi se conosciete qualche sito da cui prelevare righe
di
| codice esplicative (sempre su classi e oggetti) o meglio ancora veri e
| propri esercizi!!
Alla fine di ogni capitolo di "Thinking in C++" di B. Eckel
http://www.bruceeckel.com/

 wrote in message
8n6h6r$ed2$1...@pegasus.tiscalinet.it...


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

Salve a tutta la ML,
ho un problema numerico....Devo acquisire da file dei numeri con valori che 
arrivano sino alle 12 cifre e possono essere anche negativi e poi eseguire 
delle operazioni matematiche elementari (+,-,*,/), che tipo di struttura 
posso usare? inoltre vorrei acquisirli tramite scanf , ma non so che 
parametro passare vicino al valore percentuale.
Qualcuno puņ aiutarmi?
Mauro 

 Fatemi sapere.
Si vabbe` diciamo cosi`, comunque i Double hanno un range di circa +-10^-308
+-10^308 e per tanto hanno 15 cifre significative...

 Qualcuno può aiutarmi?
Verifica se la tua piattaforma supporta un tipo intero a 64 bit, tipo
long long o __int64 .
Ciao,
Nicola

 Ciao,
ciao.

 ciao.
No, non sono standard ne l'uno ne l'altro, anche se long long ha buone
possibilita' di diventarlo.
Ciao,
Nicola
Newsgroup: it.comp.lang.c++
Titolo: Passaggio di una struttura per valore o per riferimento?

Vorrei sapere qual è il modo giusto per passare una struttura? Per
valore o per riferimento? (Ho iniziato a lavorare recentemente in C++
e sono abituato a c#).
Grazie.


cikko |   
http://cikkox.altervista.org
      | GNU/Linux Registered User #365929
      |    GnuPG/OpenPGP key available
Newsgroup: it.comp.lang.c++
Titolo: Operatori bit a bit

Dove posso reperire un tutorial su questi operatori, in particolare quelli
di shift?
Grazie



Su qualsiasi libro di informatica di base per qualsiasi scuola nella
quale si studia programmazione. Se studi molto probabilmente la
biblioteca della tua scuola ha qualcosa.
-- 
Marco Barisione (ICQ 84277092)

 biblioteca della tua scuola ha qualcosa.
Sto studiando il c++ come autodidatta e sul libro che uso non ho capito una
cosa su questi operatori.

cosa su questi operatori.
Cosa esattamente?


> Cosa esattamente?
L'utilizzo degli operatori shift, in particolare questa istruzione che
riporto dal libro:
variabile | = 1<<27;
Ti sarei grato se potresti darmi delle spiegazioni.
Ciao

 a écrit dans le message news:
uDbW8.9215$7N3.2...@twister2.libero.it...

Ciao,
In questo caso << e' il simbolo per fare l'operazione di shift a sinistra.
x << y vuol dire che tu vuoi shiftare il numero x di y posizioni a sinistra.
Nel tuo caso stai shiftando il bit 1 di 27 posizioni a sinistra.
Se per esempio avessi avuto 1 << 4, avresti shiftato il bit 1 di 4 posizioni
a sinistra.
Per cui :
1 << 0 hai 1
1 << 1 hai 10
1 << 2 hai 100
1 << 3 hai 1000
1 << 4 hai 10000
etc..
1 << 27 hai 1 e 27 zeri ! cioe' un numero a 28 cifre binarie.
1 0000000000 0000000000 0000000
Quindi con il risultato di cio', vuoi fare un or binario con variabile ed
assegnarlo ancora a variabile.
Il che vuol dire che se converti variabile in binario, avrai tutte le cifre
di variabile immutate, tranne il suo bit alla posizione 27 che cambia in 1
se fosse uguale a 0.
Es:
variabile = 1 << 26; // (1 con 26 zeri)
variabile |= 1<< 27; // (1 con 26 zeri or 1 con 27 zeri)
// variabile = 11 0000000000 0000000000 000000  (26 zeri, gli spazi li ho
messi per chiarezza)
Maurus

 variabile | = 1<<27;
Mette a uno il bit 27 (numerati  mettendo lo 0 a destra) di 'variabile'.
Supponiamo che sizeof(int) == 32. Il numero 1 avra` il bit 0 a 1 e tutti
gli altri bit  a 0. Lo shift a  sinistra sposta di 27  posizioni tutti i
bit esistenti  (facendo il  padding con  0); applicato  al numero  1, in
pratica, sposta il bit a 1 nella posizione 27:
00000000000000000000000000000001                1
00001000000000000000000000000000                1 << 27
variabile  |= 1  << 27;  (non ci  vuole lo  spazio tra  | e  =) fa  l'OR
(inclusivo) bit a bit tra 'variabile'  ed il numero ottenuto dallo shift
e memorizza il risultato in 'variabile'. Visto  che tutti i bit di (1 <<
27)  sono a  0 tranne  il bit  27, dall'OR  tutti i  bit di  'variabile'
usciranno inalterati (X | 0 = X) tranne il bit 27 che varra` sicuramente
1 (1 | X = 1).
10100000010111010101100110101010                'variabile'  |
00001000000000000000000000000000                1 << 27
10101000010111010101100110101010
ciao
Kronos
-- 
Home: 
http://kronoz.cjb.net
Se il  destino di un uomo  e` annegare, anneghera` anche  in un bicchier
d'acqua.
Proverbio yddish

E se volessi sapere se un bit, ad esempio il 3°, di una variabile fosse 1 o
0 come posso fare?
Grazie


if(variabile & 4) {
	//fai qlcs perche' il terzo bit e' a 1
	//4=100
}
ciao