# cout



## Gerki (27. April 2006)

Hi, ich bin ehemaliger c++ prorammierer und hab mich entschlossen wieder anzufangen;
dass ich jetzt .h weglassen muss hab ich gemerkt doch neuerdings funktionniert mein cout befehl nicht mehr. Gibts den nicht mehr? Hier ein einfacher Helloworld script den ich zu Zeigzwecken geschrieben habe:

#include <iostream>
int main()
{
    cout << "Hello World";
    return 0;
}

wenn ich dieses jetzt kompilier in Borland Dev c++  sat er mir dass cout undefined ist. Was ist da los?

Gerki


----------



## RedWing (27. April 2006)

Hallo,

cout ist kein Befehl sondern ein globales Objekt vom Typ ostream. Da es global ist 
sollte man es vor Redefinitionen scuetzen koennen. 
Da kommt der Namespace ins Spiel:

```
#include <iostream>
int main()
{
    std::cout << "Hello World" << std::endl;
}
```
oder:

```
#include <iostream>
using namespace std;
int main()
{
    cout << "Hello World" << endl;
}
```

Siehe auch:
http://www.cplusplus.com/doc/tutorial/namespaces.html

Gruß

RedWing


----------



## deepthroat (27. April 2006)

Hi.

Alle Objekte/Klassen/Funktionen der Standard Template Library (STL) sind im Namensraum *std* definiert.


```
#include <iostream>
...
std::cout << "Hallo." << std::endl;
```
Ein gutes Buch das den C++ Standard von 1996 beinhaltet sollte dir da eigentlich extrem gut weiterhelfen können.  Außerdem solltest du dir als erstes mal die Namensräume bzw. namespace (Schlüsselwort) anschauen.

Gruß


----------



## Gerki (27. April 2006)

OK, funktionniert jetzt, aber ist das neu? Als ich noch vor einem halbem Jahr programmiert hab hatte cout << "§§§§§""; genügt.

Gerki


----------



## deepthroat (27. April 2006)

Gerki hat gesagt.:
			
		

> OK, funktionniert jetzt, aber ist das neu? Als ich noch vor einem halbem Jahr programmiert hab hatte cout << "§§§§§""; genügt.


Also wie gesagt ist der aktuelle C++ ANSI/ISO Standard von 1996 - inzwischen also ca. 10 Jahre alt. Neu ist das nun wirklich nicht mehr.

Allerdings ist es bei den meisten Compilern so (aus Kompatibilitätsgründen für alten Code), das der std Namensraum automatisch benutzt wird wenn man einen alten Header mit .h Endung verwendet.

Gruß


----------



## Gerki (27. April 2006)

Achso hab immer den mit .h benutzt der jetzt nicht mehr funktionniert. Dann liegts daran.

Danke Gerki


----------



## Messiahs_128 (27. April 2006)

deepthroat hat gesagt.:
			
		

> Also wie gesagt ist der aktuelle C++ ANSI/ISO Standard von 1996 - inzwischen also ca. 10 Jahre alt.
> Gruß



Ich bin der meinung das ich vor ca zwei Monaten in er Zeitung gelesen habe des der zweite C++ Standard fertig sei.

hmm hab das hier bei wikipedia gefunden:

"Nach jahrelanger Arbeit wurde schließlich 1998 von der ISO die endgültige Fassung der Sprache C++ (ISO/IEC 14882:1998) genormt.

2003 wurde die erste überarbeitete Version von ISO/IEC 14882:1998 verabschiedet (ISO/IEC 14882:2003). Diese Revision ist lediglich eine Nachbesserung der Norm ISO/IEC 14882:1998 und sollte nicht mit der in Arbeit befindlichen Version verwechselt werden. Die nächste Version der Sprache C++ erscheint voraussichtlich noch in dieser Dekade. (s. in der Entwicklung befindliche Version)"

Kann mir einer da weiterhelfen?


----------



## deepthroat (28. April 2006)

Hi.





			
				Messiahs_128 hat gesagt.:
			
		

> Ich bin der meinung das ich vor ca zwei Monaten in er Zeitung gelesen habe des der zweite C++ Standard fertig sei.


Hm. Also davon hab ich noch nichts gehört und ich hab auch nichts dergleichen auf der Seite vom C++ Standards Commitee gefunden.



			
				Messiahs_128 hat gesagt.:
			
		

> hmm hab das hier bei wikipedia gefunden:
> 
> "Nach jahrelanger Arbeit wurde schließlich 1998 von der ISO die endgültige Fassung der Sprache C++ (ISO/IEC 14882:1998) genormt.


Mit 1996 hab ich mich geirrt. Richtig ist natürlich 1998. Inwieweit die Revision von 2003 den ursprünglichen Standard geändert hat kann ich dir nicht sagen.

Gruß


----------



## Flegmon (28. April 2006)

Messiahs_128 hat gesagt.:
			
		

> Ich bin der meinung das ich vor ca zwei Monaten in er Zeitung gelesen habe des der zweite C++ Standard fertig sei.



wär mir auch neu.


http://www.golem.de/0507/39160.html


----------



## Messiahs_128 (28. April 2006)

Okay dann hab ich mich woll verlesen gehabt. Naja auch nicht so schlimm.


----------

