Есть вот такой вот map
static std::map<std::string, uint32_t> g_targets = {
{ "Shaggy Dog", 17939 },
{ "Chubby Dog", 17966 },
{ "Panda", 18098 },
{ "Snowball", 18426 },
{ "Crow", 18439 },
{ "Horse", 21012 },
{ "Horn Bow +0", 13138 },
};
Как мне содержимое g_targets заполнить из файла? На просторах интернет нашел вот такой вот код
std::ifstream myFile("D:\\Myfile.txt");
std::string key;
uint32_t value;
if (!myFile.is_open()) std:: cout << "Error opening file\n"; // если не открылся
else if (myFile.peek() == EOF) std:: cout << "This file is empty\n"; // если первый символ конец файла
else std:: cout << "\nAll OK! File is open!\n\n";
static std::map<std::string, uint32_t> g_targets;
while (myFile >> key >> value)
g_targets[key] = value;
for (auto& p : g_targets)
{
std::cout << p.first << p.second << "\n";
}
for (auto const& target : g_targets){...}
Пока что моя попытка подстроить под себя ничем не увенчалась. Показывает в цикле, что файл открыт нормально и на этом все. Я понимаю, что это топорная работа и где то, что то не досмотрел. Но на данный момент не понял, где и что. Так же сомневаюсь, что правильно сделал цикл for, для вывода в консоль прочтенного из файла.
Для чтения файла есть std::basic_ifstream. Для добавления записи в std::map<>
есть множество методов. В цикле добавляете все нужные записи, в чём проблема?
upd:
std::ifstream infile("название_файла");
std::string key;
uint32_t value;
std::map<std::string, uint32_t> myMap;
while (infile >> key >> value)
myMap[key] = value;
Виртуальный выделенный сервер (VDS) становится отличным выбором
Есть класс часы и статический атрибут часовой поясНеобходимо перевести все часы
Экран разбит на 3 окна вертикально, и крайнее левое вертикальное окно разбито на 2 окна горизонтально(вверху occur, внизу shell)Как сохранить это...