Programmieren - alles kontrollieren 4.940 Themen, 20.676 Beiträge

Kein Betreff angegeben

squire / 2 Antworten / Flachansicht Nickles

hallo, ich bin grad dabei, mir ein wenig C++ anzugucken und kann den hello world auf mdk9.2 nicht übersetzen. auf mdk9.1 hat das glaub ich geklappt.

der quelltext lautet:
#include iostream> !!die erste klammer wird hier nicht dargestellt!!

void main()
{
cout }

und die fehlermeldung:

[ingo@nadja Documents]$ gcc hello.cc
hello.cc:4: error: `main\' must return `int\'
hello.cc: In function `int main(...)\':
hello.cc:5: error: `cout\' undeclared (first use this function)
hello.cc:5: error: (Each undeclared identifier is reported only once for each function it appears in.)
hello.cc:5:17: warning: character constant too long for its type
[ingo@nadja Documents]$


kann mir da jemand weiter helfen?

squire

bei Antwort benachrichtigen
Anonym squire „Kein Betreff angegeben“
Optionen

Hallo!

1. Was mein Vorredner schon gesagt hat: Gemäß ISO-C++ ist main() immer eine Funktion mit Integer-Rückgabewert. Aber selbst wenn nicht: Auch void sollte einen return haben. In dem Fall schreibt man einfach return;

2. Du solltest dich informieren, was ein Namespace ist.

Alle Defininitionen der Standart-Bibliothek (also de facto alles, was du in nächster Zeit brauchen wirst, alle Definitionen aus <iostream> <vector> usw.) liegen in einem Namensbereich, der std heißt. Auf Namensbereiche greift man mit dem :: Operator zu. In dem Fall hieße dein Programm:

#include <iostream>

int main()
{
std::cout<<"Frohes Fest!";
return 0;
}

Ist dir das zu lästig, kannst du auch das Folgende machen:

#include <iostream>

using namespace std;

int main()
{
cout<<"Guten Rutsch!";
return 0;
}

Damit fügt macht man alle Elemente des Namespaces std im lokalen Namespace verfügbar.

HTH,
Kevin
--
http://www.boergens.de

bei Antwort benachrichtigen