Erste Schritte mit C++
-
Hallo zusammen!
Nach 7 Jahren mache ich nun wieder erste Schritte mit C++ und beginne wieder ganz vorne. Seht mir also bitte nach, wenn meine Frage(n) Kinderkram sind, ich hab´s schlichtweg verlernt und möchte ich da wieder einarbeiten.
Gestern Abend habe ich mich hingesetzt und mal nicht "Hallo Welt" programmiert. Ich habe folgendes gemacht:
#include <iostream> using namespace std; int main() { bool zahl_1, zahl_2, ergeb; cout << "Bitte die erste ganze Zahl angeben: "; cin >> zahl_1; cout << "Bitte die zweite ganze Zahl eingeben: "; cin >> zahl_2; ergeb = zahl_1 * zahl_2; cout << zahl_1 << " mal " << zahl_2 << " = " << ergeb; return 0; }
Dazu gibt es folgende Fragen:
1. Wofür steht "#include <iostream>"? Kann mir jemand ein Beispiel am Leben erklären? Ich kann mir das nicht herleiten.
2. Ebenso "using namespace std;", bitte.
3. Ihr werdet den Fehler gefunden haben: "bool zahl_1, zahl_2, ergeh;". Wenn ich "bool" in "int" abändere, dann funktioniert das selbstverständlich" ABER: Wenn ich mit "bool" in die erste Variable z.B. eine "2" schreibe, erhalte ich folgendes Feedback: "Bitte die zweite ganze Zahl eingeben: 143 mal 224 = 1". Warum werden mir diese Zahlen zurückgegeben und warum erhalte ich also dieses Feedback?
Kann mir das jemand erläutern?
Danke!
-
nokumo schrieb:
1. Wofür steht "#include <iostream>"? Kann mir jemand ein Beispiel am Leben erklären? Ich kann mir das nicht herleiten.
Such mal nach "C++ Compiler Linker"
nokumo schrieb:
2. Ebenso "using namespace std;", bitte.
Such mal nach "C++ namespaces"
nokumo schrieb:
3. Ihr werdet den Fehler gefunden haben: "bool zahl_1, zahl_2, ergeh;". Wenn ich "bool" in "int" abändere, dann funktioniert das selbstverständlich" ABER: Wenn ich mit "bool" in die erste Variable z.B. eine "2" schreibe, erhalte ich folgendes Feedback: "Bitte die zweite ganze Zahl eingeben: 143 mal 224 = 1". Warum werden mir diese Zahlen zurückgegeben und warum erhalte ich also dieses Feedback?
Weil ein bool einen Wahrheitswert und keine Ganzzahl repräsentiert?
-
cooky451 schrieb:
nokumo schrieb:
1. Wofür steht "#include <iostream>"? Kann mir jemand ein Beispiel am Leben erklären? Ich kann mir das nicht herleiten.
Such mal nach "C++ Compiler Linker"
nokumo schrieb:
2. Ebenso "using namespace std;", bitte.
Such mal nach "C++ namespaces"
Wird gemacht, danke!
cooky451 schrieb:
nokumo schrieb:
3. Ihr werdet den Fehler gefunden haben: "bool zahl_1, zahl_2, ergeh;". Wenn ich "bool" in "int" abändere, dann funktioniert das selbstverständlich" ABER: Wenn ich mit "bool" in die erste Variable z.B. eine "2" schreibe, erhalte ich folgendes Feedback: "Bitte die zweite ganze Zahl eingeben: 143 mal 224 = 1". Warum werden mir diese Zahlen zurückgegeben und warum erhalte ich also dieses Feedback?
Weil ein bool einen Wahrheitswert und keine Ganzzahl repräsentiert?
Ja, das habe ich verstanden und das war auch noch eines der wenigen Dinge die ich so behalten habe. Aber: Wieso erhalte ich als Feedback dieses Zahlenergebnis, wenn ich eine "2" eingebe? Was genau passiert da im Hintergrund?
EDIT: Vielen Dank für die schnelle Antwort!
-
nokumo schrieb:
Ja, das habe ich verstanden und das war auch noch eines der wenigen Dinge die ich so behalten habe. Aber: Wieso erhalte ich als Feedback dieses Zahlenergebnis, wenn ich eine "2" eingebe? Was genau passiert da im Hintergrund?
EDIT: Vielen Dank für die schnelle Antwort!
Bool belegt 1 Byte.
Damit wäre theoretisch eine Zahl bis 255 möglich.Allerdings wird Bool als 1 oder 0 bzw. true oder false interpretiert
und was du da addierst ist somit eine logische Addition, die dann true und somit 1 ergibt.
Alles was 1 oder größer ist, wird übrigens als true bzw. 1 interpretiert.
-
Korrektur:
logische MultiplikationSolange beide Werte true sind, also 1 oder größer sind, ergibt das Ergebnis auch true.