Моя программа читает файл, представляющий собой список имен программ, за которыми следуют запятая и список аргументов командной строки для этой программы. Я хочу хранить каждую строку отдельно, чтобы я мог отсортировать их, а затем запустить их. Проблема, с которой я сталкиваюсь, заключается в том, чтобы попытаться понять, как хранить информацию. Я думал создать структуру или класс, но я не знаю, какими будут аргументы командной строки или сколько их будет. Например, первая строка файла может быть notepad.exe, test.txt, а следующая строка — myprogram.exe, 10 2000.
Каков наилучший способ хранения неизвестного количества аргументов с неизвестным типом данных?
Спасибо
Вы можете сохранить каждое имя приложения в качестве ключа std::map
и аргументы как std::vector
std::map<std::string, std::vector<std::string>> apps;
std::ifstream infile("apps.txt");
std::string line;
while (std::getline(infile, line))
{
std::string appName = getEverythingBeforeComma(line);
std::vector<std::string> arguments = getEverythingAfterCommaAndSplitBySpace(line);
apps[appName] = arguments;
}
Других решений пока нет …