NeulingsProblem

Alexon

Ensign
Registriert
Sep. 2008
Beiträge
222
Noob-Prob: include iostream.h

Hi,

ich habe gerade angefangen c++ kennenzulernen, ich benutze den Dev-C++ Compiler.
leider ist schon beim einfachsten Programm ein Problem aufgetreten:
Code:
1: #include <iostream.h>
2:
3:
4: int main()
5: {
6: cout <<"Hello World!\n";
7:     return 0;
8: }

Das Fenster zeigt nicht Hello World! an, sondern schließt sofort wieder. Folgende Warnung kann mir nur gegeben werden:
#include <iostream.h> wird als "deprecated" bezeichnet:

"32:2 D:\Informatik\Dev-Cpp\include\c++\3.4.2\backward\backward_warning.h #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>. To disable this warning use -Wno-deprecated. "

Nun habe ich es mit
#include <iostream> versucht. doch so tauchen dann Errors im "Hallo, Welt" -Programm auf.

Kann mir jemand da weiterhelfen?
 
Zuletzt bearbeitet:
1. Mieser Threadtitel angegeben: Beschreibe kurz das Problem und nicht nur erwähnen, DASS du ein Problem hast (sonst würdest du ja nicht fragen ;)).
2. Benutze code-Tags um deinen Quellcode (Der Button mit # direkt über dem Editierfeld). Dieser wird dann schön formatiert angezeigt.

3. iostream.h ist in der Tat veraltet. Wie schon versucht ist <iostream> (ohne .h) richtig.
Jetzt weiß der Compiler allerdings nicht mehr, aus welchem Namespace er cout benutzen soll.
a. Schreibe zwischen include und main ein using namespace std;
b. Schreibe std::cout

Nimm a oder b.
 
2. Frage

ok, danke.
Im tutorial, welches ich benutze steht noch, "Hallo, World" müsste jetzt in einem Fenster ausgegeben werden. Trotzdem schließt das Fenster sofort, ist das normal?
 
Hallo Alexon,
dein Titel des Threads "NeulingsProblem" hat mich neugierig gemacht. Somit ist es ok, weil ja nicht nur ich sondern auch die anderen 2 mal draufgeschaut haben. Also Ziel erreicht!

Jetzt zu deiner Frage, unabhängig davon ob jetzt <iostream.h> deprecated ist oder nicht. Du kannst es fürs erste immer noch verwenden. Am Anfang würde ich mich an deiner Stelle nicht um diese Warnung kümmern, weil sie dich a) fürs erste ablenken und b) dennoch verwendet werden kann. Wenn du später mal etwas weiter bist, kannst du dich auch dieser Warnungen annehmen und deinen Code dahin gehend optimieren bzw. bereinigen. Es ist ja immerhin notwendig das du da schon einige Konzepte verstehst, wie z.B. Namespaces. Aus meiner Sicht ist das für einen Anfänger aber erstmal uninteressant. Das Problem was du beschreibst ist folgendes: Dein Programm startet, ein Konsolenfenster wird angezeigt, das Programm schreibt "Hello World!" und schließt sich gleich wieder. Zur Lösung könntest du folgendes schreiben:
Code:
#include <iostream.h>
int main()
{
  cout<<"Hello World!\n";
  char[255] test;
  cin>>test;
  return 0;
}

Das hat zur Folge das dein Programm wartet, bis du etwas in das Fenster eingibst und mit ENTER bestätigst. Ebenso landet deine Eingabe in einer Variablen und könnte später von deinem Programm ausgewertet werden... Für den "Feinschliff" können sich die anderen auch an diesem Thread beteiligen...
 
@BlackMark: bei meinem Code ist kein Namespace, das bezog sich vielmehr auf das includieren von <iostream> anstelle von <iostream.h>. Nur so am Rande, oller Blitzmerker ;) :D Im übrigen hatte ich auch in Erinnerung das da mal so ein Thread vor kurzem hier war, der das Thema schonmal behandelt. War zum einen zu faul den raus zusuchen, andererseits warst du so freundlich den Link zu posten...
 
Zuletzt bearbeitet:
@Rossibaer: Im übrigen geht das mit dem iostream.h nur mit manchen Compilern, das Visual Studio zum Beispiel hat den iostream.h gar nicht ;)

Gruß
BlackMark
 
Zuletzt bearbeitet:
@BlackMark: Interessant, hab gleich mal nachgeschaut und zu meiner Verwunderung das selbe festgestellt. Wie dem auch sei, der TE schreibt ja das er iostream.h verwendet hat, also muss es bei seinem dev c++ compiler dabei sein. Ich finde nur witzig, das ich damals in der Berufsschule diesen ganzen cin/cout Kram mit <iostream.h> machen musste (dank einem dummen Lehrer!). Und in diversen C++ Büchern ist immer noch die Rede von <iostream.h>. Verdammt wo ist die Zeit geblieben :D PS: ich mach da jetzt Fortschritte bei meinem Progrämmchen, verwende PerformanceCounter und schlag mich zur Zeit mit dem ausbalancieren von Binären Bäumen rum...

Grüße Rossibaer
 
Zuletzt bearbeitet:
Also normalerweise würde man das in C++ auf Windows zum Üben so machen:
Code:
#include <iostream>
using namespace std;

int main()
{
   cout << "Hallo, Welt!" << endl;
   system("PAUSE");
   return 0;
}

Ich würde empfehlen als IDE Code::Blocks zu benutzen, das ist aktueller als Dec-C++ und schließt das Fenster beim debuggen sowieso nicht. Somit kann man system("PAUSE"); weglassen.
Oder sogar ganz ohne IDE den Umgang mit Compiler und Texteditor üben.
 
Zurück
Oben