Zum Inhalt springen

Empfohlene Beiträge

Geschrieben

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.

Geschrieben
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

Geschrieben

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. ;)

Geschrieben

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 *'

Geschrieben

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

Geschrieben
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.

Geschrieben

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.

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.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...