Aus Ergebnisanzeige ein float machen
-
Hallo,
Von einer Messung bekomm ich einen bstr (wchar_t*);
Wenn ich mir den auf ein Label lege sieht der so aus: *0.001E1 und noch zeilumbruch am ende.
wie kann ich daraus jetzt ein float oder double wert machen?
In der Beschreibung von dem gerät steht folgendes:
Note: Data is VARIANT pointer to a BSTR. This was done in order to make the string easily accessible in all languages.
The device measures and reports at a rate of 15 Hertz. There are 2 possible responses.
- Standard E notation (example *1.500E-3 for 1.5 milliwatts) for a successful reading.
- *OVER. If beyond the presently configured measurement capabilities of the USBI.
Gibt es da eine relativ einfache möglichkeit ohne jedes zeichen ind die Hand zu nehmen??
Danke schonmal
-
Hallo
Du könntest mit den Stringstreams konvertieren :
Zuerst das '*' und den Zeilenumbruch aus dem string extrahieren und dann über wstringstream in float/double umwandeln.bis bald
akari
-
Wie wandel ich das denn dann um?
soweit bin ich schonmal:
Messwert.bstrVal[0]='0'; std::wstringstream test; test << Messwert.bstrVal;
aber wie gehts nu weiter. wie kann ich den jetzt umwandeln?
-
Hallo
wchar_t* val = L"*0.001E1"; val[0]=L'0'; std::wstringstream convert; convert << val; double dest; convert >> dest;
bis bald
akari
-
Danke hat mir sehr geholfen!