Mal ein paar allgemeine Fragen

Alles Wissenswerte über Skripte, Browser, Makros, PhP, HTML...

Moderatoren: Moderatoren, Redakteure

Benutzeravatar
Kiremos
Beiträge: 1
Registriert: 19.09.2009 11:30
Persönliche Nachricht:

Beitrag von Kiremos »

Der richtige Code wäre so:

Code: Alles auswählen

#include <iostream>

int main()
{
  std::cout << "Hello World!" << std::endl;

   return 0;
}

Die Konsole wird sich allerdings direkt wieder schließen
Benutzeravatar
Rodhawk
Beiträge: 3315
Registriert: 14.07.2009 15:24
Persönliche Nachricht:

Beitrag von Rodhawk »

Ich hab den Code genauso eingefügt, unmittelbar nach den vorgegebenen Codes des Programmes, danach F7 gedrückt, und nun kommt das da:

------ Erstellen gestartet: Projekt: Tutorial Projekt, Konfiguration: Debug Win32 ------
Kompilieren...
Tutorial Projekt.cpp
.\Tutorial Projekt.cpp(14) : error C2731: 'main': Überladen der Funktion nicht möglich
.\Tutorial Projekt.cpp(13): Siehe Deklaration von 'main'
.\Tutorial Projekt.cpp(15) : error C2065: 'endl': nichtdeklarierter Bezeichner
Das Buildprotokoll wurde unter "file://d:\Eigene Dateien\Visual Studio 2008\Projects\Tutorial Projekt\Tutorial Projekt\Debug\BuildLog.htm" gespeichert.
Tutorial Projekt - 2 Fehler, 0 Warnung(en)
========== Erstellen: 0 erfolgreich, Fehler bei 1, 0 aktuell, 0 übersprungen ==========



Und wieso wird in meinem Tutorial das std ::cout nicht erklärt? Ist das eine ältere Version? Ich verzweifle bald :(
Benutzeravatar
Levi 
Beiträge: 44988
Registriert: 18.03.2009 15:38
Persönliche Nachricht:

Beitrag von Levi  »

GameChamp13 hat geschrieben:Also ich habe die Codes vom Tutorial so eingegeben, wenn ihr wollt kann ich ein Print-Screen machen.
Ich will eben möglichst nach Tutorial arbeiten, da ich sonst wenn ich einfach nach Hilfe frage und irgendwelche Codes bekomme, nichts lerne. Ich muss den Grund verstehen, warum dieser Code, und in dem Tutorial ist das sehr gut beschrieben.
das Blöde ist: das Tutorial ist zwar scheinbar c++ aber leider benutzt der gute herr nen anderen Compiler als du ... um nicht zu sagen ... irgendwas sehr komisches .... ich würde dir gar von der benutzung dieses Tutorials im weiteren abraten.

Der schreiber kommt scheinbar noch frisch aus der c-Welt ... und nimmt es mit bestimmten sachen scheinbar auch nicht so ernst.
Rückgabewerte? .. wen interessieren die .... ach es gibt void? .. nee danke, kenn ich nicht, verzichte ich drauf
Benutzeravatar
Rodhawk
Beiträge: 3315
Registriert: 14.07.2009 15:24
Persönliche Nachricht:

Beitrag von Rodhawk »

Schade, aber es hat mich sowieso gewundert, wieso dass der andersfarbige Codes hat :?
Benutzeravatar
Levi 
Beiträge: 44988
Registriert: 18.03.2009 15:38
Persönliche Nachricht:

Beitrag von Levi  »

GameChamp13 hat geschrieben:Schade, aber es hat mich sowieso gewundert, wieso dass der andersfarbige Codes hat :?

wait ... whoOt ....

andersfarbiger Code?? .... wir sind hier beim programmieren, nicht bei ner Modenschau :D ...


@Fehlermeldung: sicher dass du wirklich nur eine Mainfunktion drinne hast:

deine fehlermeldung deutet eigentlich daraufhin, dass du zweimal main in deiner funktion hast ;)
Benutzeravatar
Rodhawk
Beiträge: 3315
Registriert: 14.07.2009 15:24
Persönliche Nachricht:

Beitrag von Rodhawk »

@Codes:

Wenn in seiner Version ein Code grün ist, und bei meiner Version ist er rot, dann kann etwas nicht stimmen :?

@Fehler:

Wenn ich ein neues Projekt mach, dann hats ja schon ein paar Codes oben. Direkt unter diese hab ich die abgetippt, also keine Ahnung ;)
Benutzeravatar
Levi 
Beiträge: 44988
Registriert: 18.03.2009 15:38
Persönliche Nachricht:

Beitrag von Levi  »

GameChamp13 hat geschrieben:@Codes:

Wenn in seiner Version ein Code grün ist, und bei meiner Version ist er rot, dann kann etwas nicht stimmen :?

@Fehler:

Wenn ich ein neues Projekt mach, dann hats ja schon ein paar Codes oben. Direkt unter diese hab ich die abgetippt, also keine Ahnung ;)

ich wette mit dir, dass in diesen Code bereits eine "main" function implementiert ist.


@Farbe: nein, die farbe hat prinzipiell rein garnichts damit zu tun, ob der code funktioniert oder nicht. die farbe wird einfach vom verwendeten Editor gegeben. der Code dahinter ist das entscheidende.
Benutzeravatar
Rodhawk
Beiträge: 3315
Registriert: 14.07.2009 15:24
Persönliche Nachricht:

Beitrag von Rodhawk »

Aber muss ich den Code der schon gegeben ist, löschen? Das ist doch das Grundlegende, darf man das löschen? Ich habs glaub mal gelöscht, dann kam aber nochmal irgendein Fehler :?
Benutzeravatar
Scorcher24_
Beiträge: 15527
Registriert: 11.11.2004 14:31
Persönliche Nachricht:

Beitrag von Scorcher24_ »

Kiremos hat geschrieben:Der richtige Code wäre so:

Code: Alles auswählen

#include <iostream>

int main()
{
  std::cout << "Hello World!" << std::endl;

   return 0;
}

Die Konsole wird sich allerdings direkt wieder schließen
Mein Code war schon richtig. return 0 ist nach dem aktuellen ISO-C++ Standard nicht notwendig.
rya.
Benutzeravatar
Scorcher24_
Beiträge: 15527
Registriert: 11.11.2004 14:31
Persönliche Nachricht:

Beitrag von Scorcher24_ »

GameChamp13 hat geschrieben:Aber muss ich den Code der schon gegeben ist, löschen? Das ist doch das Grundlegende, darf man das löschen? Ich habs glaub mal gelöscht, dann kam aber nochmal irgendein Fehler :?
Jedes C++-Konsolenprogramm darf nur eine main-Funktion enthalten. Sprich, wenn Du ein Projekt erstellst, nimm entweder ein leeres oder editiere das vorhandene.
rya.
Benutzeravatar
Levi 
Beiträge: 44988
Registriert: 18.03.2009 15:38
Persönliche Nachricht:

Beitrag von Levi  »

Scorcher24 hat geschrieben:
Kiremos hat geschrieben:Der richtige Code wäre so:

Code: Alles auswählen

#include <iostream>

int main()
{
  std::cout << "Hello World!" << std::endl;

   return 0;
}

Die Konsole wird sich allerdings direkt wieder schließen
Mein Code war schon richtig. return 0 ist nach dem aktuellen ISO-C++ Standard nicht notwendig.
rya.
aber thereotisch "korrekter", wenn man schon int als Rückgabewert angibt :D ... möchte man auf rückgabewerte verzichten, sollte man auch mit void arbeiten.

ist natürlich ähnlich der std:: diskusion ein wenig geschmackssache ... aber na gut :D
Benutzeravatar
Scorcher24_
Beiträge: 15527
Registriert: 11.11.2004 14:31
Persönliche Nachricht:

Beitrag von Scorcher24_ »

-Levi- hat geschrieben:
Scorcher24 hat geschrieben:
Kiremos hat geschrieben:Der richtige Code wäre so:

Code: Alles auswählen

#include <iostream>

int main()
{
  std::cout << "Hello World!" << std::endl;

   return 0;
}

Die Konsole wird sich allerdings direkt wieder schließen
Mein Code war schon richtig. return 0 ist nach dem aktuellen ISO-C++ Standard nicht notwendig.
rya.
aber thereotisch "korrekter", wenn man schon int als Rückgabewert angibt :D ... möchte man auf rückgabewerte verzichten, sollte man auch mit void arbeiten.

ist natürlich ähnlich der std:: diskusion ein wenig geschmackssache ... aber na gut :D
Öhm, nein.
void main() ist gegen den Standard, zumindest in C++. Die erlaubten Variationen:

Code: Alles auswählen

int main();
int main(int argc, char** argv);
Und es ist weder korrekter noch unkorrekt kein return am Ende zu setzen. Es ist korrekt es nicht zu setzen. Eine Steigerung gibts nicht.
Und nein, in dem Fall geht es nicht um Geschmackssache, sondern um Tatsachen.
rya.
Aron_dc
Beiträge: 238
Registriert: 02.12.2008 11:10
Persönliche Nachricht:

Beitrag von Aron_dc »

Es ist insofern "korrekter" als das "int main" ja "int" als Rückgabewert hat. Wenn etwas einen Rückgabewert hat, sollte man auch was zurückgeben, und wenns nur ne 0 ist (der Korrektheit halber :-P ).

Man kann es weg lassen ... der Compiler wird aber dann wenigstens meckern.
Benutzeravatar
Scorcher24_
Beiträge: 15527
Registriert: 11.11.2004 14:31
Persönliche Nachricht:

Beitrag von Scorcher24_ »

Aron_dc hat geschrieben:Es ist insofern "korrekter" als das "int main" ja "int" als Rückgabewert hat. Wenn etwas einen Rückgabewert hat, sollte man auch was zurückgeben, und wenns nur ne 0 ist (der Korrektheit halber :-P ).

Man kann es weg lassen ... der Compiler wird aber dann wenigstens meckern.
Nein wird er nicht wenn er ISO-C++ kompatibel ist. Verstehst du es nicht? Das ist im Standard so verankert. Natürlich kannst du es schreiben, aber es ist nicht nötig.
Das betrifft aber nur die int main()!
rya.
Benutzeravatar
Levi 
Beiträge: 44988
Registriert: 18.03.2009 15:38
Persönliche Nachricht:

Beitrag von Levi  »

ich habe keine ahnung, seit welchen standard es funktioniert void main zu benutzen ... und nur weil etwas "kompatibel" ist, heißt es nicht, dass es "besser" ist. Ja es wird unterstützt. Aber nein, es ist nicht toller, es wegzulassen. Speziell bei anfängern sollte man es ruhig mit aufführen, ist ähnlich der Diskusion die wir vor kurzem hier schonmal hatten.


die funktion verlangt mit >int< einen rückgabewert, also tu ihr auch den gefallen und geb ihn ihr. oder hast du ne eselsbrücke dafür, wie sich das programm ohne vernünftigen Rückgabewert verhält beim schließen?

Da ich ja bekanntlich linuxer bin, und öfter mal in ner konsole arbeite, bin ich darauf angewiesen zu wissen, was die möglichen rückgabewerte eines Programmes sind. (welche in der main definiert werden, wenn sie denn definiert werden.) ...

Spring doch mal über deinen eigenen faulen Schatten, und geb zu, dass wenn die Funktion als "int" definiert ist, kann es auch nicht schaden einen "int" zu returnen.

btw: ich nehm mein "korrekter" weg, du hast in dem sinne recht, dass es auch ohne korrekt ist, und als kleinkarierter Mensch, erkennt man nicht, dass es ein "korrekter" auch in der deutschen Umgangssprache gibt :D ... und mache daraus ein "schöner" .... zufrieden?