Daten richtig vergleichen String mit int?
-
Ich möchte ein Programm machen, dass Werte in einer Textdatei vergleicht.
Das Problem ist, dass cl_movespeedkey "0.52" aus einem String und Int besteht.
Ich weiß nicht, wie ich das in meiner Funktion mache das er nach cl_movespeedkey "0.52" sucht und nicht nur nach cl_movespeedkey.
-
Meinst du
"cl_movespeedkey \"0.52\""?
-
Ja das mit dem /"0.52/"" ist auch gut zu wissen, nur weiß ich nicht wie ich aus dem 0.52 ein string mache
-
-
So wie ich dich verstehe steht das in einer Datei, oder? Dann ist das doch ein String. Zahlenwerte kannst du nur in Binärdateien abspeichern, alles was du mit einem Editor lesen kannst, sind Strings.
-
ah k, danke. werde ich gleich mal testen
-
// cl_movespeedkey if(line.find("cl_movespeedkey \"0.52\"") != string::npos) { cout << cl_movespeedkeyt << endl; }geht, danke
UPDATE:
wie kann ich jetzt in mein Programm abfragen, ob der Wert 0.52 verändert wurde, wenn er nicht 0.52 entspricht, sondern 0.53 z.B ?
-
Also falls du den Wert hinter deinem Parameter nicht kennst,
wirst du reguläre Ausdrücke brauchen oder du suchst nur nach dem
Parameternamen und nimmst das, was darauf folgt als Wert.Ich denke du suchst sowas in der Art
#include<iostream> #include<string> bool getValue(const std::string& text, const std::string& par, std::string& parVal){ size_t index1 = text.find(par); size_t parLength = par.size(); if(index1 != std::string::npos) { size_t startSearch = index1+parLength+1; size_t index2 = text.find(" ", startSearch); if(index2 != std::string::npos){ parVal = text.substr(startSearch, index2-startSearch); } else{ parVal = text.substr(startSearch, text.size()-startSearch); } return true; } return false; } void check(const std::string& text, const std::string& par){ std::string parValue; if(getValue(text, par, parValue)){ std::cout << par << ": \"" << parValue << "\"" << std::endl; } else { std::cout << par << " not found" << std::endl; } } void checkAll(const std::string& text){ std::cout << text << std::endl; check(text, "cl_movespeedkey"); check(text, "cl_pitchspeed"); } int main() { std::string text1("Dein Text enhält cl_movespeedkey 0.52 und cl_pitchspeed 0.53"); std::string text2("Dein Text enhält cl_movespeedkey 0.51 und cl_pitchspeed 0.54"); std::string text3("Hallo darvis"); checkAll(text1); checkAll(text2); checkAll(text3); return 0; }Wenn du den String jetzt als double haben möchtest, dann klick meinen ersten Link an

-
sehr gut danke, aber welcher erste link?
-
...