Newsgroup: it.comp.lang.c++
Titolo: [neofita] Differenza tra endl e endl()

 
Sto provando il progrmma CodeBlocks con compilatore GCC e s.o.
WinVista; nell'inserire l'istruzione endl nella seguente riga di
codice:
 
cout << "Inserisci numero: " << endl;
 
mi viene proposto in automatico una finestra in cui posso scegliere
tra tre possibilità:
 
1) C++ end
 
2) (.) endl
 
3) (.) ends
 
...la seconda, piu' simile a endl, credo sia  una funzione e mi viene
inserita con le parentesi :endl(),  e che, se scelta, nella suddetta
riga di codice, mi genera degli errori.
 
 In pratica NON ho la possibilità di scegliere solo endl...potreste
darmi qualche chiarimento?
 
Ciao e grazie mille!!!
 
 


std::endl() è un manipolatore di output, ossia una funzione definita 
appositamente per i canali standard di output, che emette un carattere 
newline e invoca un altro manipolatore, std::flush(), sullo stesso canale.
 
I puntatori ai manipolatori di output vengono in genere usati come 
argomenti di std::basic_ostream::operator<<(); per esempio:
 
	// std::endl senza parentesi è un puntatore a funzione:
	std::cout << "Hello World!" << std::endl;
 
Essendo appunto delle funzioni, i manipolatori possono anche essere 
invocati direttamente passando come argomento il canale a cui devono 
essere applicati; per esempio:
 
	std::cout << "Hello World!";
	std::endl(std::cout);
 
Per l'utente finale le due versioni sopra producono gli stessi risultati.
 
Il primo modo è tuttavia più comune perchè il codice sorgente che ne 
risulta è spesso più breve.
 
L'ambiente di sviluppo che usi non è in grado di capire dal contesto che 
vuoi, anzi, devi nel tuo caso, usare il puntatore a funzione "endl". 
Probabilmente sa solo che "endl" è definita come una funzione e pertanto 
tenta di aiutarti completando automaticamente (ed erroneamente) il testo 
della selezione aggiungendo le parentesi.
 
 


[cut]
 
OK...ti ringrazio, cerchero' di approfondire quanto mi hai suggerito:
sono ancora agli inizi ed alcuni concetti per me sono ancora molto
difficili.
 
Inoltre, cosa rappresentano le icone per le opzioni che il compilatore
propone?...in particolare, nel caso proposto, ho notato queste due
icone:
 
"C++" e "(.)", dove, al posto del "punto", in realta' , tra le
parentesi abbiamo un pallino verde.
 
In altri casi, le icone sono dei rettangolini verdi.
 
Ciao e grazie mille!
 
 
 
 
 
 
 
 
 
 
 

 In altri casi, le icone sono dei rettangolini verdi.
 
Potresti probabilmente fare:
 
1. un esperimento controllato con codice scritto da te
2. leggere la documentazione
3. ignorare il fenomeno.
 
Ora la tua priorita' e' imparare a programmare. ;)
 
 
 
-- 
-riko
http://www.enrico-franchi.org/
 
http://rik0-techtemple.blogspot.com/
 

 tanto aiuta, ogni tanto sbaglia.
 
[cut]
 
OK..ti ringrazio; per caso sono capitato su questo sito:
 
http://www.cplusplus.com/
 
 
Cosa ne pensi?
 
Ciao e grazie mille!
 
 
 
 
 
 
 
 
 
 

 Cosa ne pensi?
 
E' fra i miei bookmarks. Lui e un altro paio di siti simili sono ottime
risorse per trovare facilmente dettagli su un qualche pezzo della
libreria standard. 
 
Immagino che ci sia anche altro, in termini di manualistica. 



 
OK, grazie mille,...se puoi suggerirmi altri link, ne sarei ben lieto!
 
Ciao!