Trådstart 1 okt. 2001 20:48 #1 Hur gör jag för att konvertera en char till en int?
Jag har provat med atoi(); och att casta... Men inget av det går.
När jag försöker använda atoi(); klagar kompilatorn på att funktionen inte finns. Biblioteket som den ligger i är väl stdlib.h?
UlfT Medlem sedan maj 2001 8 027 inlägg atoi() konverterar en nullterminerad sträng till en int. En char är faktiskt något helt annat. atoi() är deklarerad enligt nedan:
int atoi(const char *);
Det innebär att den tar inte en char som argument, den tar en pekare till en char. Denna pekare ska peka på första tecknet i en nullterminerad sträng.
OK, men hur konverterar jag då en char till en int? Går det inte?
-redigerat-
Så här kanske?
<font size="1" face="Verdana, Arial, Helvetica, sans-serif">Kod:<font size="1" face="Verdana, Arial, Helvetica, sans-serif" color="#666600">
int i;
char[2] c;
cin.getline(c, 2);
i = atoi(c);
UlfT Medlem sedan maj 2001 8 027 inlägg Eller kanske såhär:
<font size="1" face="Verdana, Arial, Helvetica, sans-serif">Kod:<font size="1" face="Verdana, Arial, Helvetica, sans-serif" color="#666600">int i;
char c[2];
cin >> c[0];
c[1] = '\0'; // För att nullterminera strängen
i = atoi(c);
[Redigerat av UlfT den 02 okt 2001]
spango Medlem sedan juni 2000 8 205 inlägg <font size="1" face="Verdana, Arial, Helvetica, sans-serif">Kod:<font size="1" face="Verdana, Arial, Helvetica, sans-serif" color="#666600">
char foo;
cin >> foo;
int bar = c - '0';
Funkar dock inte på system med EBCDIC, har jag för mig
Ok, tack för era förslag, nu har jag fått allt att funka, utom en grej.
Jag använde mig av cin.getline(inStr, 10); för att endast läsa de 10 första tecknen som användaren skrev in, och det gick jättebra. När jag använda Borlands kompilator. Men nu när jag använder Dev-C++ funkar det inte, den hittar inte funktionen. Finns det något sätt att göra likadant när man använder Dev-C++?