Datentypen
Der Datentyp bestimmt, welche Werte eine Variable enthalten kann. Bisher hast du int benutzt. Für den Anfang reichen diese fünf Typen:
#include <iostream>
#include <string>
int main() {
int schueler = 28;
double preis = 12.5;
char gruppe = 'B';
bool istWochenende = true;
std::string stadt = "Berlin";
std::cout << schueler << "\n";
std::cout << preis << "\n";
std::cout << gruppe << "\n";
std::cout << istWochenende << "\n";
std::cout << stadt << "\n";
}Das gibt aus:
28
12.5
B
1
Berlinintist eine Ganzzahl, positiv oder negativ:28,-5,0.doubleist eine Dezimalzahl, geschrieben mit Dezimalpunkt:12.5,-0.25.std::coutgibt sie ohne überflüssige Nullen aus:2.50als2.5und3.0als3.charist ein einzelnes Zeichen in einfachen Anführungszeichen:'B','7','?'.boolist ein Wahrheitswert (ein Boolean): entwedertrueoderfalse. Er ist nützlich für Fragen, die man mit Ja oder Nein beantwortet: Ist Wochenende? Hat der Spieler den Schlüssel?std::coutgibttrueals1undfalseals0aus, deshalb siehst du in der Ausgabe oben eine1.std::stringist Text (eine Zeichenkette, also eine Kette von Zeichen) in doppelten Anführungszeichen:"Berlin". Er stammt aus der Standardbibliothek und wird deshalb mitstd::geschrieben, genau wiestd::cout. Er braucht#include <string>am Anfang des Programms, so wiestd::cout#include <iostream>braucht.
Den Typ wählst du danach, was die Variable enthalten soll: Die Zahl der Schüler ist immer eine Ganzzahl, ein Preis kann Cent haben, und ein Name ist Text.
Typische Fehler:
- Ein Zeichen in doppelten Anführungszeichen:
char gruppe = "B";endet mit dem Fehlercannot initialize a variable of type 'char' with an lvalue of type 'const char[2]'. Der Compiler sagt damit, dass sich der Text"B"nicht in einemcharspeichern lässt. Ein Zeichen steht in einfachen Anführungszeichen:'B'. - Ein Dezimalkomma: Bei uns schreibt man 12,5. In C++ endet
double preis = 12,5;mit dem Fehlerexpected unqualified-id, weil das Komma in C++ etwas anderes bedeutet. Schreibe Dezimalzahlen mit einem Punkt. - Eine Dezimalzahl in einem
int:int preis = 12.5;lässt sich kompilieren, aber gespeichert wird nur12. Der Nachkommateil wird weggeworfen. - Vergisst du
std::, endetstring stadt = "Berlin";mit dem Fehlerunknown type name 'string'; did you mean 'std::string'?
So schreibst du es:
"Shift + 2
/Shift + 7
\Alt Gr + ß
{Alt Gr + 7
}Alt Gr + 0
<<
>Shift + <
[Alt Gr + 8
]Alt Gr + 9
##
&Shift + 6
|Alt Gr + <
*Shift + +
Anweisungen
- 1
Das Programm lässt sich noch nicht kompilieren, weil es Variablen ausgibt, die es nicht gibt. Erstelle sie unter dem Kommentar, jede mit dem passenden Datentyp:
namemit dem Wert"Emma"altermit dem Wert16groessemit dem Wert1.68gruppemit dem Wert'B'istSchuelermit dem Werttrue
- 2
Führe das Programm aus. Es sollte ausgeben:
Name: Emma Alter: 16 Größe: 1.68 m Gruppe: B Ist Schüler: 1 - 3
Erstelle unter den Ausgaben eine Variable
istErwachsenvom Typboolmit dem Wertfalseund gib sie so aus:Ist erwachsen: 0