Je veux prendre argv [(2 dans cet exemple)], le stocker en vecteur et l'utiliser plus tard dans le programme. Le problème est qu'aucun opérande ne correspond à ces opérandes std :: string == int. Cela signifie-t-il que l'application voit '-r' comme int? Je suis un peu confus ici.C++ using arguments ARGV
int main(int argc, char* argv[])
{
std::vector<std::string> argList;
cout<<"argc: "<<argc<<endl;
for(int i=2; i<=argc; i++)
{
argList.push_back(argv[i]);
}
if(argList.at(2) == '-r') cout<<" Good job ";
}
Vous avez juste besoin des guillemets doubles pour faire une chaîne littérale: ' « -r »' . Avec des guillemets simples, c'est un littéral de type int. –
argv [2] est placé dans argList [0] et argList [2] contient argv [4] donc passez-vous 4 paramètres à votre programme? Vraiment, vous devriez vérifier la taille du vecteur avant d'essayer d'accéder à l'élément 2 –
Aussi une copie de/répondu par http://stackoverflow.com/questions/3683602/single-quotes-vs-double-quotes-in-c –