Problem mit atoi()
-
Hallo,
ich habe ein Problem mit atoi() (Hier ein Link: http://www.mkssoftware.com/docs/man3/atoi.3.asp )
Mein Code ist folgender:
#include <stdlib.h> #include <stdio.h> int main(void) { char* x = "f"; int befehl; befehl = atoi(x); printf("Zahl: %d", befehl); return 0; }
Wie dem Link zu entnehmen, liefert atoi() 0 zurück, wenn kein char konvertiert werden konnte. bei mir liefert das Programm immer 0. Warum?
Vielen Dank im Voraus,
mfg Martin Wagner
[ Dieser Beitrag wurde am 21.03.2003 um 21:23 Uhr von MartinWagner editiert. ]
-
weil "f" keine zahl ist. so einfach ist das
-
-
was für eine zahl soll "f" denn sein? 1? 3? 19?
wenn du anstelle von "f" z.B. "650" einsetzt funktioniert es.btw:
ist printf nicht c; und bei cpp ist cout 'richtiger' ?
-
Da habe ich wohl die falsche funktion erwischt. in wirklichkeit möchte ich den ANSI-Code von einem übergebenen Buchstaben ermitteln, der dann zurückgegeben wird. Ich habe die Funktion CharToInt in R.oo gefunden, aber ich hätte gerne etwas nicht so groß angelegtes. Gibt es da was?
mfg Martin
-
Was willst du jetzt genau? Welche Zahl soll denn rauskommen bei "f"?
-
Den ANSI-Code, in dem Fall also 69 decimal oder 45 hex
-
So etwas also: http://www.maths.lth.se/help/R/.R/library/R.oo/html/charToInt.html
das ist mir aber irgendwie zu kompliziert, mit den objekten und so
-
printf("Zahl: %d", 'f');
-
Danke. Aber wieso tappe ich immer im dunkeln und denke so kompliziert und dann ist es so einfach.
Vielen Dank
Martin
-
da du ja profi bist:
warum geht das hier nicht?
char* buch = "x"; int test = (int)buch; cout << "Zahl: " << test << endl;
-
Es liefert immer 4198960 zurück. Warum?
-
das ist die speicheradresse des chars
-
int test = (int)*buch;
-
ich bin heute irgendwie durcheinander. natürlich muss es int(*char) sein. Danke
-
Gell, ich nerve
Geht das ganze auch anders herum? also in etwa buch = char(test)? So geht es nicht, aber wie muss das heißen, damit es geht?
-
int test = 120;
char buch = test;
-
Vielen Dank