Typumwandlung char to int - Hilfe
-
Moin,
ich habe einen Aufruf einer .exe Datei mit einem Parameter.int main(int argc, char* argv[]) { char *Kennung = argv[1]; char *Text = argv[2]; char *Status = argv[3]; if (Text == "") { switch (Status){ case 1 : .....um Status "switchen" zu können muss es eine ganzzahl sein. wie kann ich das umwandeln in z.B. int?
zur info in Status steht eine Zahl von 0-15 also keine Buchstaben o.ä.Gruß und danke schon einmal
-
switch( atoi(Status) )

-
Wirf mal einen Blick in die FAQ - Thema "Einmal String nach Zahl und zurück".
(btw, du hast dort keine 'char' (einzelnes Zeichen), sondern Strings (char* - nullterminierte Zeichenfolge) - und der Vergleich von char* mittels == liefert idR keine brauchbaren Ergebnisse)
-
CStoll schrieb:
Wirf mal einen Blick in die FAQ - Thema "Einmal String nach Zahl und zurück".
(btw, du hast dort keine 'char' (einzelnes Zeichen), sondern Strings (char* - nullterminierte Zeichenfolge) - und der Vergleich von char* mittels == liefert idR keine brauchbaren Ergebnisse)
du meinst die überprüfung ob Text leer ist?
wie köntne man es denn sosnst machen?
gruß
-
mit strcmp(deinstr, "") == 0
-
hephaistos6 schrieb:
mit strcmp(deinstr, "") == 0
und wo packe ich dann das Text rein?
-
codeman2001 schrieb:
du meinst die überprüfung ob Text leer ist?
wie köntne man es denn sosnst machen?
strcmp() wurde ja schon genannt, alternativ kannst du mit std::string anstelle der char* arbeiten - aber in deinem Beispiel sollte es überhaupt nicht dazu kommen, daß Text leer ist (außer du übergibst zu wenig Kommandoparameter, aber dann erhältst du NULL - und Datenmüll in Status).
-
codeman2001 schrieb:
hephaistos6 schrieb:
mit strcmp(deinstr, "") == 0
und wo packe ich dann das Text rein?
in
if(strcmp(Text, "") == 0) { }anstatt
if(Text == "")
-
alles klar.. super! funktioniert