String to double[]
-
Hallo,
wie weist man den inhalt eines strings einer position eines double-arrays zu?
werte[j] = atof(eingabe);
erzeugt folgenden Fehler:
1>.\mittelwerte.cpp(66) : error C2664: 'atof': Konvertierung des Parameters 1 von 'std::string' in 'const char *' nicht möglich
1> Kein benutzerdefinierter Konvertierungsoperator verfügbar, der diese Konvertierung durchführen kann, oder der Operator kann nicht aufgerufen werden
-
Klar funktionierts nicht, std::string und const char* sind zwei verschiedene Datentypen.
std::string.c_str() gibt vom string ein const char* zurück, das kannst du nutzen.
-
Wären stringstreams nicht besser?
#include <sstream> // ... std::istringstream is(eingabe); is >> werte[j];
-
Danke für eure Antworten

Benutze ich: .c_str; kommt:
.\mittelwerte.cpp(66) : error C3867: "std::basic_string<_Elem,_Traits,_Ax>::c_str": Dem Funktionsaufruf fehlt die Argumentliste. Verwenden Sie "&std::basic_string<_Elem,_Traits,_Ax>::c_str", um einen Zeiger auf den Member zu erstellen. 1> with 1> [ 1> _Elem=char, 1> _Traits=std::char_traits<char>, 1> _Ax=std::allocator<char> 1> ] 1>.\mittelwerte.cpp(66) : error C2440: '=': 'const char *(__thiscall std::basic_string<_Elem,_Traits,_Ax>::* )(void) const' kann nicht in 'double' konvertiert werden 1> with 1> [ 1> _Elem=char, 1> _Traits=std::char_traits<char>, 1> _Ax=std::allocator<char> 1> ] 1> Es gibt keinen Kontext, in dem diese Konvertierung möglich istBenutze ich das selbe mit den () kommt folgendes:
\mittelwerte.cpp(66) : error C2440: '=': 'const char *' kann nicht in 'double' konvertiert werden 1> Es gibt keinen Kontext, in dem diese Konvertierung möglich istBei letzterem weiß ich nicht wie ich das anwenden soll
-
Ich weiss ja nicht was du genau tust, aber folgendes funktioniert bei mir:
#include <iostream> #include <cstdlib> #include <string> const short NMB_OF_VAL=3; int main(void){ std::string input="-200.505"; double values[NMB_OF_VAL]; for(int cnt=0;cnt<NMB_OF_VAL;cnt++){ values[cnt]=atof(input.c_str())+cnt; std::cout<<values[cnt]<<std::endl; } }Vielleicht hilft's dir ja?
-
MEETyA, c_str() gibt dir einen sogenannten C-String zurück, der in atof() benutzt werden kann. Natürlich kannst du den nicht direkt in das Array schreiben. goto anywhere hat den passenden Code ja bereits gepostet!