C++

Betagurke

PC-Selbstbauer(in)
Guten Tag,

ich versuche mich im Moment immer noch an der Programmierung mit C++, nun habe ich eine Frage:

Ich habe folgendes aus dem Tutorial abgetippt und danach kompiliert.



/*

main.cpp

*/
#include <iostream>

using namespace std;

int main()
{

int a,b;

cout << "Bitte geben Sie bitte eine Zahl ein:" << endl;

cin >> a;

cout << endl << "Gitte geben Sie bitte nochmal eine Zahl ein:" << endl;

cin >> b;

if (a == b)
{
cout << "Beide Zahlen sind gleich";
}

if (a < b)
cout << "a ist kleiner als b";


//Wenn die Anweisung in der Klammer nur eine Anweisung umfasst, dann kann man die Klammern weglassen
if (a > b)
cout << "b ist kleiner als a";

return 0;
}

Nun dann hat sich die Anwendung geöffnet mit der Meldung "Bitte geben sie eine Zahl ein", ich habe die 7 gewählt, dann kam die Meldung: "Bitte gebe sie die Zahl nochmal ein", ich habe folglich wieder die 7 eingegeben, doch das Fenster hat sich nach Eingabe der 2 Zahl einfach geschlossen, dieses Problem habe ich sehr oft und ich weiß einfach nicht mehr weiter, ich hoffe ihr könnt mir da helfen.

Nebenfrage: Kennt ihr gutes Tutorial zu C++ (kostenlos, da mit im Moment das Geld für ein gutes Buch fehlt und ich denke, dass für die Grundlagen auch ein Tutorial reicht)? Ich arbeite im Moment mit diesem: Online-tutorials.net - C++ Tutorial Teil 1

Vielen Dank im Voraus, Betagurke
 
Wobei System seht teuer ist, da würd ich, bevor man sichs angewöhnt, eher sachen nehmen wie getch(), dafür musste nur noch eben conio.h einbinden.
 
Schon möglich, aber da es hier nur drum geht 2 Zahlen zu vergleichen, sollte das doch ziemlich egal sein ^^
 
Wie wäre es mit
Code:
cout << "Press return to exit" << endl;
while(cin.get() != '\n');
?
Ist im Gegensatz zu den vorigen beiden Vorschlägen standardkonform und plattformunabhängig.
 
Ja das geht und ist standardkonfrom und plattformunabhängig. ;)

Kann man durchaus so machen, oder einfach linux nutzen, dann brauch man so was nicht :lol:

PS: wenn man das Programm unter windows aus der shell startet, braucht man das glaub ich auch nicht.
 
Oder halt mit "cin" auf eine Eingabe warten. Problem tritt wirklich nur auf, wenn man eine Entwicklungsumgebung nutzt und daraus das Programm startet.
 
danke für die vielen Antworten, ich benutzen die von Mashed mit einer eränderten Meldung.
Nun habe ich aber noch eine Frage, was bedeutet diese "endl" bzw. was macht es?
 
endl

ist ein Funktionsaufruf, der dafür sorgt, das der buffer geleert und auf die Console ausgegeben wird. zusätzlich wird eine neue Zeile angefangen.

Relevant ist eigentlich nur das ein Zeilenumbruch erfolgt. Also quasi ein \n beim print().

endl kann man sich auch als endline merken ;)
 
danke, nun bin ich im Tutorial weiter und habe verschiedene Programme verändert, dies ist aber 1:1 abgetippt, und der Compiler zeigt mir bei "return 0;" ständig einen Fehler an, warum?
Meiner Meinung nach ist alles richtig..
#include <iostream>

using namespace std;

int main ()
{

int i = 0;

cout << "Bitte geben Sie eine Zahl ein: " << endl;

cin >> i;

//Die "if-Variante"

if (i == 0)
cout << "Null";
else if(i == 1)
cout << "Eins";
else if(i == 2)
cout << "Zwei";

else
cout << "Die Zahl ist groesser als zwei";

//Die "Swicht-Variante"

switch(i)
{
case 0:
cout << "Null";
break;

case 1:
cout << "Eins";
break;
case 2:
cout << "Zwei";
break;

default:
cout << "Die Zahl ist groesser als zwei";
break;

while(cin.get() != '\n');
}
return 0;
 
also danke für deinen tipp, aber ich habe jetzt hinter das "return 0;" die geschweifte Klammer gemacht und es funktioniert trotzdem nicht?
 
endl

ist ein Funktionsaufruf, der dafür sorgt, das der buffer geleert und auf die Console ausgegeben wird. zusätzlich wird eine neue Zeile angefangen.

Relevant ist eigentlich nur das ein Zeilenumbruch erfolgt. Also quasi ein \n beim print().

endl kann man sich auch als endline merken ;)

Sry, dass ich klugscheiße, aber ich denke man sollte dich verbessern: Funktionsaufruf ist es ja wirklich nicht. Also nicht, dass wir unseren neuen Freund verwirren hier... :D

betagurke: du musst auch alle geschweiften Klammern schließen, also auch die der switchanweisung.
 
Zurück