string to int
-
Ich habe in meinem aktuellen Projekt ein ziemliches Problem:
Mein Programm muss an einer Stelle einen string (C++: String-Klasse) in eine Int-Variable umwandeln.
Ich habe bereits per Google gesucht und in verschiedenen Foren geguckt, aber noch keine bei mir passende Lösung gefunden.
Es gibt für mich auch nicht die Möglichkeit, die Zahl gleich in einen anderen Variablen-Typ zu schreiben.Kennt jemand von euch eine Funktion, womit ich nun die Zahl, die in dem String steht, in eine Int-Variable schreiben kann?
Danke schon mal für die Hilfe,
Prof. MAAD
-
atoi oder mit nem stream. steht genauer in der c++ faq wenn ich mich nicht irre.
-
Erstmal danke für die schnelle Antwort.
Ich habe den entsprechenden Artikel in den FAQs gefunden und die Möglichkeit über
"stringstream" ausprobiert. Ich bekomme daraufhin vom Compiler (gcc 3.3.1) folgende Fehlermeldung:error: ISO C++ forbids comparison between pointer and integer
Ich hoffe jemand kann mir sagen, wo der Fehler liegen könnte
Code:# include <iostream> # include <string> # include <sstream> using namespace std; int i; stringstream tempstream; string num1; tempstream<<num1; tempstream>>int1; cout<<int1;
Wobei das natürlich kein richtiges Prog is (der Code). Ich habe jetzt nur die Stellen übernommen, die relevant sind. Ich kann sicher sein, dass in "num1" eine Zahl steht.
Danke im Voraus,
Prof. MAAD
-
Hallo
Was ist int1? Wolltest du statt dessen vielleicht die Variable i als Ziel?
Dann funktioniert es.bis bald
akari
-
Du hast recht, ich hab mich vertippt, bin durcheinandergekommen.
Da wo jetzt "int1" steht sollte eigentlich die Variable "i" stehen.
Aber im Programm selbst isses richtig, und ich bekomme trotzdem diesen Fehler (siehe oben).Kann mir jemand sagen, woran es liegen könnte, oder hat jemand noch ne gute Alternative?
Danke in Voraus,
Prof. MAAD
-
Hallo
Bei welcher Zeile genau kommt die Fehlermeldung?
bis bald
akari
-
OK, ich habe nochmal genau hingeguckt, und habe bemerkt, dass der Fehler wo anders liegt.
Vor dem Umwandeln führe ich eine if-Abfrage durch:if(num1[0]=="$") { ... }
Der Fehler liegt laut Compiler in der if-Abfrage.
"num1" ist hierbei ein String (C++-String-Klasse).Kann mir jemand sagen, wo der Fehler liegt
Danke im Voraus,
Prof. MAAD
-
Hallo
Chars werden durch einfache Hochkommas dargestellt, im gegensatz zu den Strings :
if(num1[0]=='$') { ... }
bis bald
akari
-
@akari: Vielen Dank, es hat funktioniert!
Ich hätte sicher noch ne Weile gebraucht, bis ich das gefunden hätte.Danke auch beiden!
Prof.MAAD