Datentypen und Ausgabeformatierung in C und C++
In dieser Lektion deklarierst du Ganzzahl- und Gleitkommavariablen und gibst sie in C und C++ im richtigen Format aus.
Einführung
C und C++ teilen sich die grundlegenden Zahlentypen wie int für ganze Zahlen und double für Kommazahlen. Die Formatierung der Ausgabe unterscheidet sich aber: C verwendet den Formatstring von printf, C++ verwendet Ausgabeströme (streams) zusammen mit den Werkzeugen der Bibliothek iomanip.
Wichtige Punkte
- Schalte die Compiler-Warnungen (compiler warnings) ein und behebe alle.
- Verstehe den Datentyp und die Lebensdauer (lifetime) jedes Werts genau.
- Prüfe immer die Eingabedaten und die Grenzen von Array-Indizes.
Codebeispiele in C und C++
#include <stdio.h>
int main(void) {
int items = 7;
double price = 3.5;
printf("items=%d total=%.2f\n", items, items * price);
return 0;
}
items=7 total=24.50
#include <iomanip>
#include <iostream>
int main() {
int items = 7;
double price = 3.5;
std::cout << "items=" << items << " total="
<< std::fixed << std::setprecision(2) << items * price << '\n';
}
items=7 total=24.50
C und C++ im Vergleich
Bei printf braucht jeder Wert einen passenden Formatbezeichner, zum Beispiel %d für int und %.2f für eine Kommazahl mit 2 Nachkommastellen. Passt der Bezeichner nicht zum Typ, ist das Ergebnis falsch. In C++ wählt std::cout die Ausgabeart anhand des Typs, und std::fixed sowie std::setprecision legen die Zahl der Nachkommastellen fest.
C verwendet kleine prozedurale Funktionen und zeigt offen, wie Daten im Speicher dargestellt werden.
C++ erlaubt weiterhin Arbeit auf niedriger Ebene, ergänzt aber Bibliothekstypen und sicherere Abstraktionen.
Übungen zur Vertiefung
Führe beide Versionen aus und ändere dann den Code, um zu beobachten, welche Sicherheit jede Sprache bietet.
- Teste ungültige Eingaben und Grenzwerte.
- Kompiliere mit den Flags -Wall -Wextra -Wpedantic, um zusätzliche Warnungen einzuschalten.
- Lagere gemeinsame Deklarationen in eine Header-Datei und die Implementierung in eine eigene Datei aus.
Mit einer Challenge üben
Nutze den Inhalt dieser Lektion, um ein echtes Problem zu lösen. Jede Challenge läuft im Browser, mit sofortigen Tests und einem KI-Review.
- Stunden, Minuten und Sekunden Wandle eine Dauer in Sekunden in einen kompakten, lesbaren String um. Einfach
- Celsius to Fahrenheit Convert a temperature from Celsius to Fahrenheit. Einfach