Die Funktion cout wird nicht erkannt
-
Doch schon ich glaube , dass du nur std:: vergessen hast das sieht dann so aus:
Außerdem hast du das int bei main() vergessen probiers mal:
#include <iostream> int main() { std::cout << "Hello world" << endl; }
-
C++_new_progger schrieb:
Doch schon ich glaube , dass du nur std:: vergessen hast das sieht dann so aus:
Außerdem hast du das int bei main() vergessen probiers mal:
#include <iostream> int main() { std::cout << "Hello world" << endl; }und du hast es noch bei endl vergessen => std::endl

-
Och nö so ein müll natürlich auch std::endl; ich idiot!!

-
Afaik braucht man das nicht mehr, da der Ausgabepuffer automatisch ge"flushed" wird nach dem schreiben. Bin mir aber nicht ganz sicher.
Gruß
-
@FireFlow geflusht schon, aber es wird keine neue Zeile angehängt. Sieht n bisserl komisch aus in der Konsole
Hello WorldC:\>oder
HelloWorlduser@foo$
-
Pumuckl schrieb:
iostream ist keine wirkliche Klasse.
Kannst du mir das vielleicht erläutern?
Afaik braucht man das nicht mehr, da der Ausgabepuffer automatisch ge"flushed" wird nach dem schreiben.
Nach jedem schreiben? Soweit ich weiß wird der ostream-buffer nur geflushed, wenn man zwischen cin und cout wechselt. Sprich
cout << "blub..."; // Bevor etwas eingelesen wird, wird der ostream-buffer geflushed. cin >> x;, wenn das Programm beendet wird (Wobei sich mein Debian-Linux _nicht_ so verhält
), oder wenn man explizit mittels std::endl oder std::flush den buffer leert... => Würde mich interessieren, ob ich mit diesen Infos richtig liege und ob dieses Verhalten auch "Standard" ist. (Habs irgendwie irgendwann mal so oder so ähnlich gelesen, bin mir aber nicht mehr ganz sicher...)Gruß Caipi
-
Hi Leute,
ich komme mal wieder auf das ursprüngliche Thema zurück. Gibt es nicht auch die Möglichkeit das so zu schreiben:
#include <iostream.h> int main() { cout << "Hallo Welt!\n"; }Man kann doch auch einfach ".h" anfügen und dann muss man das mit dem std oder dem namespace gar nicht schreiben. Ich bin mir aber nicht sicher. Könnt mich ja noch anders belehren und mir notfalls erklären, was daran anders ist mit ".h"
MfG Apocalypse
-
Apocalypse schrieb:
Hi Leute,
ich komme mal wieder auf das ursprüngliche Thema zurück. Gibt es nicht auch die Möglichkeit das so zu schreiben:
#include <iostream.h> int main() { cout << "Hallo Welt!\n"; }Man kann doch auch einfach ".h" anfügen und dann muss man das mit dem std oder dem namespace gar nicht schreiben. Ich bin mir aber nicht sicher. Könnt mich ja noch anders belehren und mir notfalls erklären, was daran anders ist mit ".h"
MfG Apocalypse
Siehe dazu hier. :).
Gruß Caipi
-
bevor die namespaces in die sprache integriert wurden, war es noch übliche die header dateien mit .h enden zu lassen. als nun features hinzugefügt wurden und der neue standard verabschiedet wurde, waren teile davon die namespaces und auch das die header nicht mehr mit .h enden. Also, alles in allem kann man sagen das .h vorstandardbezeichnungen sind ( nur bei den standardheadern natürlich) und zu dieser zeit die Stl auch nicht im namespace war. deshalb muss man dann natürlich nicht den namespace bekannt machen ( da es ihn nicht gibt). aber man sollte dennoch keinen vorstandard code verwenden, da er, wie der name schon sagt nicht stadardkonform ist,dies hat einige nachteile, einer könnte zB sein, dass dein Compiler den Code einfach nicth annimmt. ( weniger ein Nachteil als eine Hilfe)
-
Das mit dem Puffer und flushen und desweiteren hat bei mir auch noch nie so richtig geklappt wie es überall meistens steht. Gibt es da was eindeutiges zu ...
Wie sich was wo wie verhält oder verhalten soll.
-
Caipi schrieb:
Pumuckl schrieb:
iostream ist keine wirkliche Klasse.
Kannst du mir das vielleicht erläutern?
iostream ist ein header der hier eingebunden wird. In diesem header werden einige andere header eingebunden, die für Ein- und Ausgabe nötig sind (<istream> und <ostream> dürfte ziemlich sicher dabei sein). Außerdem werden folgende Objekte deklariert:
namespace std { extern istream cin; extern ostream cout; extern ostream cerr; extern ostream clog; extern wistream wcin; extern wostream wcout; extern wostream wcerr; extern wostream wclog; };
-
pumuckl schrieb:
Caipi schrieb:
Pumuckl schrieb:
iostream ist keine wirkliche Klasse.
Kannst du mir das vielleicht erläutern?
iostream ist ein header der hier eingebunden wird. In diesem header werden einige andere header eingebunden, die für Ein- und Ausgabe nötig sind (<istream> und <ostream> dürfte ziemlich sicher dabei sein). Außerdem werden folgende Objekte deklariert:
namespace std { extern istream cin; extern ostream cout; extern ostream cerr; extern ostream clog; extern wistream wcin; extern wostream wcout; extern wostream wcerr; extern wostream wclog; };Das mag ja alles korrekt sein, trotzdem würden sich cplusplus.com sowie das Buch "C++ lernen und professionell anwenden" täuschen, wenn du mit der Aussage "iostream ist keine richtige Klasse" Recht hast...
Gruß Caipi