Avatar ·

Wie konvertiert man char in int in C und C++? Umgang mit Ziffern und Zeichen

Hallo zusammen! Ich habe gerade angefangen, C++ zu lernen, und bin auf eine unverständliche Situation gestoßen. Ich muss ein Zeichen von der Standardeingabe lesen und in eine ganze Zahl umwandeln, um arithmetische Operationen damit durchzuführen. Hier ist mein Code in C++:\n\n```cpp\n#include \nusing namespace std;\n\nint main() {\n char c;\n cout << "Geben Sie eine Ziffer ein: ";\n cin >> c;\n int num = (int)c; // Versuche, char in int zu konvertieren\n cout << "Die eingegebene Zahl multipliziert mit 2: " << num * 2 << endl;\n return 0;\n}\n```\n\nWenn ich `5` eingebe, erwarte ich als Ausgabe `10`, aber das Programm gibt `106` aus! Warum ist das so? Ich habe gelesen, dass `char` ein ganzzahliger Typ ist und man ihn in `int` casten kann. Aber offenbar mache ich etwas falsch. Sagt mir bitte, wie man ein Zeichen, das eine Ziffer enthält, korrekt in eine ganze Zahl konvertiert? Und worin liegt der grundlegende Unterschied zwischen der numerischen Darstellung eines Zeichens und seinem tatsächlichen Zahlenwert?