PDA

View Full Version : [C++] Problemi con <iostream> e compilatore Borland


uomoserio
27-05-2007, 13:40
Ciao a tutti, sono alle prime armi e sto iniziando ora a studiare il C++ su vari manuali. Come compilatore uso Borland C++ Builder 2006.
Il mio problema, come da oggetto, riguarda la classicissima libreria <iostream> ed è questo:
se nel codice, con #include, scrivo <iostream.h> lo compila benissimo (ovviamente), ma se invece scrivo semplicemente <iostream> (come scritto in tutti i manuali) non lo compila e mi ritorna un errore dicendo che cout e cin (presenti nel codice di esercizio) non sono comandi validi (ovviamente, non avendo compilato l'header iostream).
Ma perchè succede questo? Ho letto che alcuni compilatori esigono l'estensione ".h" dei file header, ma pensavo che un compilatore aggiornato e nuovo come il Borland Builder 2006 fosse più "moderno" :(

La cosa più strana, è che nella stessa documentazione Borland fornita con il compilatore, in tutti gli esempi viene scritto sempre <iostream>, senza l'estensione!
Ma come?? Nella documentazione mi dicono di scrivere una cosa che poi il compilatore non riconosce?? :confused:

uomoserio
27-05-2007, 14:45
Come non detto, sono proprio rinco! :rolleyes:
Ho trovato l'errore....se voglio usare <iostream>, senza l'estensione ".h", devo anche mettere using namespace std.....cosa che io dimenticavo di fare! :muro:

Grazie lo stesso, e scusate. :)

ndakota
27-05-2007, 18:06
sei sicuro non ti dia errore lo using namespace std? a noi nel borland a scuola si.. comunque se vuoi un consiglio i migliori ide per c++ sono: dev-cpp, code::blocks, visual studio express.. tutti e tre gratuiti..

uomoserio
27-05-2007, 21:50
sei sicuro non ti dia errore lo using namespace std? a noi nel borland a scuola si..

No no, nessun errore, mettendo "using namespace std" va tutto a meraviglia. :)
Però ne approfitterei per farti un'altra domanda....
In uno dei testi che uso per imparare, ho visto che nei listati d'esempio viene usata spesso la funzione system("Pausa"), per l'attesa della pressione di un tasto al termine del programma. Cercando informazioni, ho visto che la funzione system() è dichiarata nell'header <stdlib.h>, ma in questi listati viene incluso solamente <iostream>, e in effetti funziona. :mbe:
Perchè riesco a usare system() senza includere <stdlib.h>?? Per caso <iostream> include <stdlib> al suo interno? :confused:

comunque se vuoi un consiglio i migliori ide per c++ sono: dev-cpp, code::blocks, visual studio express.. tutti e tre gratuiti..

Si, ho installato anche dev-cpp per provarlo e devo dire che come ambiente mi piace molto, semplice ma completo.
Però non ho capito perchè produce degli EXE enormi......lo stesso identico listato, compilato in dev-cpp produce un EXE da 436 Kb (con ottimizzazioni attivate) mentre nel Borland C++ Builder 2006 produce un EXE di 23 Kb (e funziona perfettamente!)!! :eek:

cionci
28-05-2007, 00:26
Magari hai l'opzione di debugging attivata ;)

uomoserio
28-05-2007, 06:45
Magari hai l'opzione di debugging attivata ;)

Purtroppo no, non è attivata, ho controllato.
Ma 436 Kb per scrivere "hello world" su console (il tipico "primo programma C++") mi sembrano veramente una esagerazione :(
Peccato perchè come ambiente Dev-C++ mi sembra molto comodo.