PDA

Visualizza la versione completa : [C++] errore con <iostream.h>


zaxis
15-12-2005, 19:35
Ho tentato di compilare il primissimo esempio della guida C++ di html.it, usando
Microsoft Visual C++ Express. L'esempio e' banale:


//
// PRIMO.CPP
// Il primo esempio in C++
//
#include <iostream.h>
main()
{
cout << " CIAO MONDO! ";
return (0);
}


Ho creato un nuovo progetto, tipo console win 32, senza headers precompilati.

Ecco l'errore:


fatal error C1083: Cannot open include file: 'iostream.h': No such file or directory



Allora osservando come erano scritti altri listati, ho tolto il .h, scrivendo solo
#include <iostream>

Ecco gli errori:


error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
error C2065: 'cout' : undeclared identifier

Cioe' adesso trova iostream, ma non mi riconosce cout!!

Allora ho fatto un altro tentativo: dalle microsoft SDK ho incluso "manualmente" il file iostream.h nel progetto.
Niente da fare, non lo vede.

Alla fine, sempre vedendo gli esempi, ho fatto un'altra prova:

ho aggiunto "using namespace sdt", e ha funzionato!!!!

Alcune considerazioni:

1) Non riuscire a compilare il primo esempio di una guida e' davvero frustrante. Vi prego di aiutarmi :-(
2) Immagino il codice della guida di html.it sia obsoleto: dentro tutti gli esempi della guida del visual c++
ho trovato #include <iostream> invece di #include <iostream.h>, inoltre ottengo gli stessi errori anche con il Dev C++,
che a differenza del Visual C++, mi compila il codice, ma mi restituisce pure un warning che mi avverte che

"#warning This file includes at least one deprecated or antiquated header. \
Please consider using one of the 32 headers found in section 17.4.1.2 of the \
C++ standard. Examples include substituting the <X> header for the <X.h> \
header for C++ includes, or <iostream> instead of the deprecated header \
<iostream.h>."

3) Sicuramente ci deve essere un modo per compilare l'esempio sopra senza ricorrere alla Standard Template Library...potreste dirmi qual'e'?

Grazie,

Zax

arche3d
15-12-2005, 20:39
prova a compilarlo con devc++ all'inizio + semplice,cmnque mi sa ke in vc++ sbagli a creare il tipo di progetto,oppure nn gli inserisci il sorgente .cpp

zaxis
15-12-2005, 21:29
No, e' proprio un errore del codice, obsoleto. Ho trovato la stessa cosa su un forum della Suse:


the warning is because iostream.h is obsolete you should use iostream and
you then must define the namespace std.

If your C++ book uses iostream.h it is old and you should get another book

so your program should be like that:

#include <iostream>

using namespace std;

int main()
{
cout<<"Hello World"<<endl;
return 0;
}

un altro modo corretto anche questo:



#include <iostream>

int main() {
std::cout << "hello World !\";
}




E' una risposta a questa domanda qui, praticamente identica alla mia:

http://lists.suse.com/archive/suse-programming/2004-May/0102.html





Ciao!

Loading