Kann mir mal jemand helfen
-
cin.get();wartet einfach auf eine Eingabe, die man mit Enter beendet.
system("pause");...
gib mal in die cmd "pause" ein
Dann siehst du, was es bewirkt 
gruß,
Finn
-
ya danke euch noch mal allen

-
Ich möchte mal dies hier noch hinsetzen:
http://www.c-plusplus.net/forum/viewtopic-var-t-is-111042.htmlVor allem auch der Hinweis ganz unten wegen
system("pause"), sollte man nicht übersehen
Grüssli
-
Das return in main darf man immer weglassen und es wird in dem Fall immer 0 zurückgegeben, vollkommen egal was da vorher passiert.
Das ist Unsinn.
Das Verhalten,d.h. der Returnwert ist in diesem Fall undefiniert. Das ist nicht nur für main sondern für alle anderen returnierenden Funktionen ebenso. Die Compiler sind frei in ihrer Entscheidung,hier was zu machen oder nicht.
-
Wutz schrieb:
Das return in main darf man immer weglassen und es wird in dem Fall immer 0 zurückgegeben, vollkommen egal was da vorher passiert.
Das ist Unsinn.
Das Verhalten,d.h. der Returnwert ist in diesem Fall undefiniert. Das ist nicht nur für main sondern für alle anderen returnierenden Funktionen ebenso. Die Compiler sind frei in ihrer Entscheidung,hier was zu machen oder nicht.
Du erzählst Unsinn. Wenn du schon anmassend wirst, dann solltest du lieber zuerst die Fakten prüfen. Die main darf das return Statement weglassen und es ist GARANTIERT, dass das den gleichen Effekt hat, wie wenn du return 0 gemacht hättest.Und damit du das glaubst zum selber nachprüfen:
ISO/IEC 14882 3.6.1/5 schrieb:
A return statement in main has the effect of leaving the main function (destroying any objects with automatic
storage duration) and calling exit with the return value as the argument. If control reaches the end
of main without encountering a return statement, the effect is that of executing
return 0;In anderen Funktion meldet der Compiler üblicherweise, dass kein return vorhanden ist (Obwohl man das meistens recht einfach umgehen kann).
-
Hallo Timberlino,
versuche am besten gleich von anfang an deinen Code einzurücken und auch übersichtlicher zu gestalten!
Zudem wäre in deinem Fall eher kürzere Variablen von Vorteil, wie z.B. z1 für ersteZahl, denn du brauchst sie ja öfter und musst somit immer alles auschreiben.
mal zum vergleichen:
dein code
#include <iostream> using namespace std; int main() { int ersteZahl; int zweiteZahl; int ergebnis; cout << "Bitte geben Sie die erste Zahl ein:"<<endl; cin >> ersteZahl; cout << "Bitte geben Sie die zweite Zahl ein:"<<endl; cin >> zweiteZahl; ergebnis = ersteZahl + zweiteZahl; cout << "Die summe der beiden Zahlen ist: " << ergebnis << endl; system("PAUSE"); return 0; }und ein etwas geschrumpfter code:
#include <iostream> using namespace std; int main() { cout<<"Bitte geben Sie die erste Zahl ein:"<<endl; int z1; cin>>z1; cout<<"Bitte geben Sie die zweite Zahl ein:"<<endl; int z2; cin>>z2; int ergebnis = z1 + z2; cout<<"Die summe der beiden Zahlen ist: "<<ergebnis<<endl; system("PAUSE"); return 0; }Beachte zudem, das man Variablen am Besten dort deklariert, wo man sie benötigt.
Auch ist es möchglich bei deiner Rechnung gleichint ergebnis = ersteZahl + zweite Zahl;zu schreiben. Hast du dir nämlich schon wieder einmal das Wort ergebnis erspart und zugleich eine deklaration mit initialisierung gemacht.
-
silver-devil schrieb:
Zudem wäre in deinem Fall eher kürzere Variablen von Vorteil, wie z.B. z1 für ersteZahl, denn du brauchst sie ja öfter und musst somit immer alles auschreiben.
Das ist der falsche Weg! Auch wenn ersteZahl, zweiteZahl usw. jetzt nicht besonders aussagekräftig sind, sagt einem z1, z2 usw. noch weniger. An erster Stelle sollte nicht die Schreibfaulheit stehen sondern die Lesbarkeit des Codes, und mit aussagekräftigen Variablen- und Funktionsnamen fängt das an. Heutige IDEs haben im Normalfall eine Autovervollständigen-Funktion, so dass man nur die ersten Zeichen eines Variablennamens tippen muss und dann den Rest von der IDE machen lassen kann.
-
Wutz schrieb:
Das return in main darf man immer weglassen und es wird in dem Fall immer 0 zurückgegeben, vollkommen egal was da vorher passiert.
Das ist Unsinn.
Das deine Aussage Unsinn ist, wurde ja schon geschrieben.
Aber noch ergänzend: Wenn der Compiler Standardkonform ist, wird er KEINE Funktion (außer main) zulassen, die einen Rückgabewert in der Parameterliste hat, und kein return macht (Außer die Funktion wird über eine Exception beendet). Demzufolge ist der Rückgabewert immer wohldefiniert.
-
asc schrieb:
Wenn der Compiler Standardkonform ist, wird er KEINE Funktion (außer main) zulassen, die einen Rückgabewert in der Parameterliste hat, und kein return macht (Außer die Funktion wird über eine Exception beendet). Demzufolge ist der Rückgabewert immer wohldefiniert.
Echt?
Ich dachte bisher immer, ein Standardkonformer Compiler müßte nur korrekten C++-Code in entsprechendes Compilat umformen, aber aus inkorrektem C++-Code dürfe er machen, was er will.
-
Ich will hier auch mal die entsprechende Stelle aus dem Standard zum besten geben:
C++ Standard schrieb:
Flowing off the end of a function is equivalent to a return with no value; this results in undefined behavior in a value-returning function.
Das heißt sogar, dass ein Programm mit fehlendem return in normalen Funktionen gültiges C++ ist. Bloß ist das Laufzeitverhalten in diesem Fall, im Gegensatz zur main, undefiniert. Aber compilieren sollte es.
-
SeppJ schrieb:
Bloß ist das Laufzeitverhalten in diesem Fall, im Gegensatz zur main, undefiniert. Aber compilieren sollte es.
Undefined behaviour kann IIRC auch heißen "Compiler weigert sich"
-
pumuckl schrieb:
SeppJ schrieb:
Bloß ist das Laufzeitverhalten in diesem Fall, im Gegensatz zur main, undefiniert. Aber compilieren sollte es.
Undefined behaviour kann IIRC auch heißen "Compiler weigert sich"
Ja, da hast du Recht (Paragraph 1.1.13). Interessant. Wusste ich bisher noch gar nicht, dass dies auch erlaubt ist. Ist ja auch sehr sinnvoll.
-
pumuckl schrieb:
SeppJ schrieb:
Bloß ist das Laufzeitverhalten in diesem Fall, im Gegensatz zur main, undefiniert. Aber compilieren sollte es.
Undefined behaviour kann IIRC auch heißen "Compiler weigert sich"
Vorausgesetzt, der Compiler kann beweisen, dass das Laufzeitverhalten für jede Art EIngabedaten undefiniert ist.
Das bloßen Fehlen eines returns in einer Funktion, die nicht void zurückgibt, ist ja kein Fehler als solches.
anint f() {} int main() {}ist nichts undefiniert.