Hi,
ich versuche mich seit einiger Zeit an C++ (mit Code Blocks) und derzeit habe ich ein problem wo ich nicht weiterkomme. Ich hoffe einer von euch kann mir helfen.
Ich hatte vor eine Zahlenkette (vom Typ int) von der Tastatur einzulesen und die einzelnen Zahlen in ein array zu speichern. Klappte, das habe ich gemacht:
Eingabe beispielsweise Zahl: 98765
nun wird ja jede einzelne Zahl in ein eigenes array feld gespeichert.
Also hier die 9 in [0], die 8 in [1], usw.
Bis hier ist noch alles ok.
gebe ich beispielsweise zur Überprüfung ein:
zeigt er mir auch schön in der Ausgabe (in diesem Beispiel) an:
Arrary Feld1: 9
Arrary Feld2: 8
...
erweiter ich nun den Code
kommt da nicht 10 (also 1+9) raus sondern: 58
steht im Feld sstr.str()[0] eine 1 kommt 50 raus
steht im Feld sstr.str()[0] eine 2 kommt 51 raus
usw..
er rechnet also falsch.
Nach einigem grübeln und online suchen kam ich drauf das das keine int Zahlen mehr sind im array sstr.str sondern char (denke ich da richtig?)
Nach noch mehr grübeln dachte ich mir, ok, erstellste einfach ein zweites Array, aber als int und übergibts einfach Feld für Feld, also so:
Ergebnis ist aber leider immer noch 50
Dachte ich mir, ok, einfach rüber schieben ist (leider) nicht, mußte umwandeln. Gesucht, gesucht und das hier probiert:
das klappt auch, also steht im Feld sstr.str()[0] eine 9 kommt 10 raus, ABER:
das klappt nicht, ein weiteres zusätzliches Feld kann ich nicht übergeben, dann rechnet er wieder falsch 
Was ich nun möchte (ich hoffe ich habs nicht zu umständlich beschrieben):
Im Array sstr.str() habe ich (pro Feld) eine Zahl drin stehen (leider nicht vom Typ int sondern vermutlich char.
Diese Zahlen aus dem Array sstr.str() möchte ich nun alle genauso in ein neues Array vom Typ int haben, das ich damit weiter rechnen kann.
Wenn ihr mir da helfen könnt, ich würde mich freuen.
ich versuche mich seit einiger Zeit an C++ (mit Code Blocks) und derzeit habe ich ein problem wo ich nicht weiterkomme. Ich hoffe einer von euch kann mir helfen.
Ich hatte vor eine Zahlenkette (vom Typ int) von der Tastatur einzulesen und die einzelnen Zahlen in ein array zu speichern. Klappte, das habe ich gemacht:
C++:
#include <iostream>
#include <sstream>
using namespace std;
int main()
{
int zahl;
cout << "Zahl eingeben: ";
cin >> zahl;
std::stringstream sstr;
sstr << zahl;
Eingabe beispielsweise Zahl: 98765
nun wird ja jede einzelne Zahl in ein eigenes array feld gespeichert.
Also hier die 9 in [0], die 8 in [1], usw.
Bis hier ist noch alles ok.
gebe ich beispielsweise zur Überprüfung ein:
C++:
cout << "\nArrary Feld1: " << sstr.str()[0];
cout << "\nArrary Feld2: " << sstr.str()[1];
...
Arrary Feld1: 9
Arrary Feld2: 8
...
erweiter ich nun den Code
C++:
int main()
{
int zahl;
cout << "Zahl eingeben: ";
cin >> zahl;
std::stringstream sstr;
sstr << zahl;
int rechnen = 1;
rechnen = rechnen + sstr.str()[0];
cout << "\nErgebnis: " << rechnen;
kommt da nicht 10 (also 1+9) raus sondern: 58

steht im Feld sstr.str()[0] eine 1 kommt 50 raus
steht im Feld sstr.str()[0] eine 2 kommt 51 raus
usw..
er rechnet also falsch.
Nach einigem grübeln und online suchen kam ich drauf das das keine int Zahlen mehr sind im array sstr.str sondern char (denke ich da richtig?)
Nach noch mehr grübeln dachte ich mir, ok, erstellste einfach ein zweites Array, aber als int und übergibts einfach Feld für Feld, also so:
C++:
int zahl;
cout << "Zahl eingeben: ";
cin >> zahl;
std::stringstream sstr;
sstr << zahl;
cout << "\nArrary Feld1: " << sstr.str()[0];
cout << "\nArrary Feld2: " << sstr.str()[1];
int array2[10];
array2[0] = sstr.str()[0];
int rechnen = 1;
rechnen = rechnen + array2[0];
cout << "\nErgebnis: " << rechnen;
Ergebnis ist aber leider immer noch 50

Dachte ich mir, ok, einfach rüber schieben ist (leider) nicht, mußte umwandeln. Gesucht, gesucht und das hier probiert:
C++:
int zahl;
cout << "Zahl eingeben: ";
cin >> zahl;
std::stringstream sstr;
sstr << zahl;
cout << "\nArrary Feld1: " << sstr.str()[0];
cout << "\nArrary Feld2: " << sstr.str()[1];
int array2[10];
stringstream Str;
Str << sstr.str()[0];
Str >> array2[0];
int rechnen = 1;
rechnen = rechnen + array2[0];
cout << "\nErgebnis: " << rechnen;
das klappt auch, also steht im Feld sstr.str()[0] eine 9 kommt 10 raus, ABER:
C++:
int zahl;
cout << "Zahl eingeben: ";
cin >> zahl;
std::stringstream sstr;
sstr << zahl;
cout << "\nArrary Feld1: " << sstr.str()[0];
cout << "\nArrary Feld2: " << sstr.str()[1];
int array2[10];
stringstream Str;
Str << sstr.str()[0];
Str >> array2[0];
Str << sstr.str()[1];
Str >> array2[1];
int rechnen = 1;
rechnen = rechnen + array2[0];
rechnen = rechnen + array2[1];
cout << "\nErgebnis: " << rechnen;

Was ich nun möchte (ich hoffe ich habs nicht zu umständlich beschrieben):
Im Array sstr.str() habe ich (pro Feld) eine Zahl drin stehen (leider nicht vom Typ int sondern vermutlich char.
Diese Zahlen aus dem Array sstr.str() möchte ich nun alle genauso in ein neues Array vom Typ int haben, das ich damit weiter rechnen kann.
Wenn ihr mir da helfen könnt, ich würde mich freuen.