system () не работает для цикла c ++ - PullRequest
0 голосов
/ 10 июня 2018

У меня проблемы с получением system() для работы внутри цикла for в c ++.Вот пример моего кода:

string modules[13] = {"requests", "pygame", "pronouncing",
                  "nltk", "pip", "webbrowser",
                  "uszipcode", "geopy", "Nominatim",
                  "bs4", "autocorrect", "spell",
                  "speechrecognition"};
int main() {
    for (int i = 0; i < 4; i++)
        system("sudo pip3 install " << modules[i]) // This is what raised the error.
}

Я получаю эту ошибку:

Documents/JoeInstaller.cpp:109:9: error: no matching function for call to 'system'
    system("sudo pip3 install " << modules[i])
    ^~~~~~

1 Ответ

0 голосов
/ 10 июня 2018
#include <string>
#include <cstdlib>

std::string modules[13] = {"requests", "pygame", "pronouncing",
              "nltk", "pip", "webbrowser",
              "uszipcode", "geopy", "Nominatim",
              "bs4", "autocorrect", "spell",
              "speechrecognition"};

int main() {
    std::string sudo("pip3 install ");
    for (int i = 0; i < 13; i++)
        std::system( (sudo + modules[i]).c_str() ); 
}

Это способ сделать это, Система имеет только один параметр.

Также, чтобы не запрашивать пароль для каждого действия, запустите программу C ++ с помощью sudo.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...