# Hello world funktioniert nicht immer, aber warum?



## Outrider (22 März 2010)

Frage für einen Anfänger, habe Dev-C++   installiert und möchte das allererste Programm eingeben.
Habe ein altes Buch "Borland C++ Version 5.0 " ergattert und folgendes eingegeben:

 #include<iostream.h>

    int main()
    {
      cout<<"Hallo Welt\n";
      return 0;
    }


fazit-> Compiler gibt Fehlermeldung.
Habe dann im Internet folgenden Kurs aufgemacht

http://tutorial.schornboeck.net/hello_world.htm
mit folgendem Code


#include<iostream>
    using namespace std;

    int main()
    {
      cout<<"Hallo Welt\n";
      cin.get();
    }


und siehe da es funktioniert.

Meine Frage ist, wo ist der Unterschied ?
Liegt es am Compiler? Ist der erste Code alt, man hört dass sich die Sprache weiter entwickelt
Wenn ich anfange eine Sprache neu zu lernen dann soll es aktuell sein, was könntet ihr mir empfehlen
Dank für Infos
Gruß


----------



## Rainer Hönle (22 März 2010)

Im ersten Beispiel wird das Programm sofort beendet (man sieht den Bildschirm mit der Meldung nicht unbedingt) und im zweiten Fall wird auf Tastendruck gewartet (und man sieht den Bildschirm). Welche Fehlermeldung sagt denn der Compiler (ist manchmal hilfreich zu wissen).


----------



## vierlagig (22 März 2010)

Outrider schrieb:


> Wenn ich anfange eine Sprache neu zu lernen dann soll es aktuell sein, was könntet ihr mir empfehlen



C#
VB.net




Outrider schrieb:


> Meine Frage ist, wo ist der Unterschied ?





			
				wikipedia schrieb:
			
		

> Demgegenüber ist der Stand vieler Lehrbücher und Lehrveranstaltungen veraltet. Lehrinhalte stimmen oft nicht mit der Realität existierender Compiler überein.


----------



## LowLevelMahn (22 März 2010)

*die includeanweisung gilt so nicht mehr*

dein kompiler findet bestimmt die iostream.h nicht

früher durfte man noch #include <iostream.h> schreiben
std ist aber nur #include <iostream> ohne das .h
wenn man die std-c libraries verwenden möchte sollte man ein c voranstellen
also anstatt #include <stdio.h> schreibt man #include <cstdio> usw.


----------



## Tappan (27 März 2010)

Mein Vorredner hat recht:

Früher war die Standartbibliothek iostream für INPUT-OUTPUT-STREAM

Heutzutage findet man stdio für STANDART-INPUT-OUTPUT

Im Grunde das gleiche, nur manche Compiler verfügen eben nur über das eine oder das andere.

zu namespace: Namespace ist in deiner Bibliothek nochmals ein Überbegriff. Dh dein cout liegt nicht direkt in der Bibliothek, sondern unter std. Somit könntest du diese zeile auch umgehen, indem du einen vollqualifizierten zugriff verwendest üder std.cout(xy);

wenn du schon ein buch für den bcb hast, würde ich diesen auch als entwicklungsumgebung nutzen, weil so eben jeder compiler seine eigenheiten besitzt, besonders dann wenn es ein wenig komplizierter wird.


----------



## marcengbarth (12 April 2010)

Im ersten Beispiel hat der namespace std gefehlt. cout / cin liegen in dem namespace std.


----------



## Dr.M (20 April 2010)

Laut Wiki stammt übrigens die letzte Version von Dev-C++ aus dem Jahre 2005 und wurde nicht mehr weiterentwickelt. Ich würde mir mal den aktuellen Borland-Compiler runterladen wenn du sowieso schon ein Buch dazu hast.

Die zwei Compiler sind auch etwas unterschiedlich. Für den klassischen "Hallo Welt"-Aufruf verwendet Borland auch noch die conio.h für die Tastatureingabe.

bei Borland sollte das dann ungefähr so aussehn:

#include<iostream.h>
#include<conio.h>

void main(void)
{
cout<< "Hello World" ;
getch ();
}

jetzt mal so auf die schnelle...


----------

