Black_Panda Geschrieben 23. Juni 2008 Geschrieben 23. Juni 2008 Hi hab folgendes problem, ich versuche eine Zeichenkette in ein integer umzuwandeln um sie dan anschließen in eine funktion zu übergeben doch es klapt nicht ganz, ich hab gedacht es müsste mit atoi oder strtoint .c_str klappen, jedoch klappt es nicht ganz, es tritt immer mindestens ein Fehler bei auf. Posting: string Seriennummer; string ZehnStelligeNummer; int Pruefziffer; cin >> Seriennummer; ZehnStelligeNummer = Seriennummer.substr(1,10); Pruefziffer = ????(ZehnStelligeNummer) Mein Problem ist hier wo die Fragezeichen sind. Bin dankbar für jede hilfe und danke im vorraus. Zitieren
TDM Geschrieben 23. Juni 2008 Geschrieben 23. Juni 2008 Hi hab folgendes problem, ich versuche eine Zeichenkette in ein integer umzuwandeln um sie dan anschließen in eine funktion zu übergeben doch es klapt nicht ganz, ich hab gedacht es müsste mit atoi [...] Das sollte doch eigentlich gehen?! Was tritt denn für ein Fehler auf? Notfalls funktioniert in C++ auch noch die Verwendung von Stringstreams als umwandlung in ein Int Zitieren
Klotzkopp Geschrieben 23. Juni 2008 Geschrieben 23. Juni 2008 Notfalls funktioniert in C++ auch noch die Verwendung von Stringstreams als umwandlung in ein IntNotfalls? Ich finde, das sollte der Standardweg sein Zitieren
TDM Geschrieben 23. Juni 2008 Geschrieben 23. Juni 2008 Nun, atoi ist eine Standardfunktion, daher ist der aufruf dort ja einfacherer und bestimmt auch schneller, bevor ich jetzt erst ein Stringstreamobjekt anlegen muss, diesem einen String zuweise und dann mittels Shiftoperator das in eine Variable pack. Aber ok, Geschmackssache auf Grund der übersichtlichkeit würd ich hier einfach zu atoi greifen. Zitieren
Black_Panda Geschrieben 23. Juni 2008 Autor Geschrieben 23. Juni 2008 Also wenn ich folgendes eingebe .... ... ... Pruefziffer = atoi(ZehnStelligeNummer); ............ ....... ..... dan taucht folgender Fehler auf: error C2664: 'atoi' : cannot convert parameter 1 from 'class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >' to 'const char *' Zitieren
Klotzkopp Geschrieben 23. Juni 2008 Geschrieben 23. Juni 2008 istringstream stream( ZehnStelligeNummer ); stream >> Pruefziffer;[/CODE] Du brauchst dafür #include <sstream>. Zitieren
Black_Panda Geschrieben 23. Juni 2008 Autor Geschrieben 23. Juni 2008 Super Danke hat geklappt, echt nett von euch . Noch eine letzte frage, gibt es auch eine andere möglichkeit oder ist das die einzigste um das Problem zu lösen, weil wir haben in der Schule noch nicht wirklich viel mit streams gemacht..?? Danke nochmals LG Zitieren
Klotzkopp Geschrieben 23. Juni 2008 Geschrieben 23. Juni 2008 Noch eine letzte frage, gibt es auch eine andere möglichkeit oder ist das die einzigste um das Problem zu lösen, weil wir haben in der Schule noch nicht wirklich viel mit streams gemacht..??Noch kein cin oder cout benutzt? Das sind Stream-Objekte Was du suchst, ist vermutlich Pruefziffer = atoi(ZehnStelligeNummer.c_str()); Das ist aber eher eine Krücke als eine Lösung, IMHO. Zitieren
Black_Panda Geschrieben 23. Juni 2008 Autor Geschrieben 23. Juni 2008 danke das hab ich gemeint Zitieren
TDM Geschrieben 23. Juni 2008 Geschrieben 23. Juni 2008 mit sscanf geht's im übrigen auch schön, hab ich grad festgestellt. evtl. wäre vielleicht eine Prüfung vorher sinnvoll (auch bei atoi), ob es sich überhaupt in eine Zahl konvertieren lässt. Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.