C++ как читать из текстового файла и разбивать его на значения
Привет Ребята,
В C++ я пытался прочитать свой текстовый файл и сохранить его в переменных
в c# я смог это сделать, хотя как бы я это сделал в c++?
string path = System.IO.Directory.GetCurrentDirectory() + @"\Destiny2Data.txt"; var files = File.ReadLines(path); foreach (var f in files) { if (f.StartsWith("XModifier")) { string s = f.Replace("\"", "").Split('=')[1]; xTextbox.Text = s; } if (f.StartsWith("YModifier")) { string s = f.Replace("\"", "").Split('=')[1]; yTextbox.Text = s; } if (f.StartsWith("Left Mouse Click")) { string s = f.Replace("\"", "").Split('=')[1]; LeftMouseClick.Checked = Convert.ToBoolean(s); } if (f.StartsWith("Right Mouse Click")) { string s = f.Replace("\"", "").Split('=')[1]; RightMouseClick.Checked = Convert.ToBoolean(s); } if (f.StartsWith("Red Health Bar")) { string s = f.Replace("\"", "").Split('=')[1]; RedHealthBar.Checked = Convert.ToBoolean(s); } if (f.StartsWith("Yellow Health Bar")) { string s = f.Replace("\"", "").Split('=')[1]; YellowHealthBar.Checked = Convert.ToBoolean(s); } }
Мой текущий текстовый документ выглядит следующим образом:
Цитата:XModifier = 1
YModifier = 1
Щелчок Левой Кнопкой Мыши = False
Щелчок Правой Кнопкой Мыши = False
Красная Полоса Здоровья = Ложь
Желтая Полоса Здоровья = Ложь
Что я уже пробовал:
Попробовал это в c#
отлично работает
попробовал это в c++, хотя это было не то, что я искал
auto read_file(std::istream& in) { using namespace std; map<string, vector<string>> values; string line; while(getline(in, line)) { istringstream linein{ line }; string key, value; if(!getline(linein, key, '#')) throw runtime_error{ "bad file format" }; while(getline(linein, value, '#') && !value.empty()) values[key].emplace_back(move(value)); } return values; }
Richard MacCutchan
У вас уже есть логика в вашем коде C#, так что просто следуйте ей и переводите каждый оператор в его эквивалент C++. Вы также можете упростить его, получив сначала измененную строку, а затем Протестировав начальное выражение.