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.
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
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
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.
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 *'
Klotzkopp Geschrieben 23. Juni 2008 Geschrieben 23. Juni 2008 istringstream stream( ZehnStelligeNummer ); stream >> Pruefziffer;[/CODE] Du brauchst dafür #include <sstream>.
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
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.
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.
Empfohlene Beiträge
Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren
Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!
Neues Benutzerkonto erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde Dich hier an.
Jetzt anmelden