Char to int/float
-
Hallo,
habe einen String in Teilstrings zerlegt und möchte nun die Teilstrings in int und float zahlen konvertieren.
Dachte schon ihn wieder zurück zu konvertieren in string und dann atoi/atof benutzen, aber es muss doch auch von char to int/float gehen.
Irgendwie bekomme ich das nicht hin.Kann mir dann mal einer bitte helfen??
mfg ahl
-
wie sehen denn deine Teilstrings aus? sind das wirklich char's? oder auch strings?
Wenn es chars sind, kannst du isnumeric() und (ch - '0') verwenden (es sei denn, du muß exostische Zeichensätze unterstützen...)
-
Sie sehen so aus:
char *Temp, *Druck, *Feuchte, *Windr;
float Temperatur, Luftdruck, Feuchte1;
int Windrichtung;
String com; // wird kommt der string von der com1
char zahl[17];strcpy(zahl,com.c_str());
Temp=strtok (zahl, ","); //Diese Werte möchte ich je in einer Edit Komponente
Druck=strtok (NULL, ","); //anzeigen und brauch sie aber auch noch für eine
Feuchte=strtok (NULL, ","); //Datenbank.
Windr=strtok (NULL, ",");Möchte Temp,Druck,Feuchte,Wind in Edit anzeigen lassen, es geht so, es soll aber nur int oder float werte zugelassen sein.
-
Den Befehl isnumeric() kann ich in der Hilfe nicht finden (Borland Builder C++ 5.0 Standart).
-
sind ja doch strings - also auf NULL testen, und atoi / atof.
isnumeric()
Sorry, das Teiol was ich meinte heißt "isdigit()"
brauchst du aber in deinem Fall nicht
-
sscanf(com.c_str(), "%f,%f,%f,%d", &Temperatur, &Luftdruck, &Feuchte1, &Windrichtung);
-
[cpp]
#include "boost/lexical_cast.hpp"int main(int argc, char * argv[])
{
using boost::lexical_cast;
using boost::bad_lexical_cast;std::vector<float> args;
while(*++argv)
{
try
{
args.push_back(lexical_cast<float>(*argv));
}
catch(bad_lexical_cast &)
{
args.push_back(0);
}
}
...
}[/cpp]mfg JJ
-
Hallo
Mit den Befehl isdigit() kann mein Borland auch nichts angfangen, aber das von
0xdeadbeef mit sscan funktioniert sehr gut.Schon mal vielen Dank für die Hilfe.
mfg carsten