J'ai le code suivant:
error: cannot convert âstd::stringâ to âintâ in initialization
3 Réponses :
if (chdir(sDirectory.c_str()) == -1) {
// handle the wonderful error by checking errno.
// you might want to #include <cerrno> to access the errno global variable.
}
Le problème est que vous êtes une chaîne pour transmettre une chaîne stl à CHDIR (). CHDIR () nécessite une chaîne de style C, qui n'est qu'une gamme de caractères terminés avec un octet nul. p>
Ce que vous devez faire est CHDIR (sdirectory.c_str ()) code> qui le convertira en une chaîne de style C. Et aussi l'INT sur int CHDIR (sdirectory); code> n'est pas nécessaire. P>
Cela peut être un problème i>, mais ce n'est pas la question i> que le compilateur se plaignait. Le compilateur se plaint du fait que sdirectory code> ne peut pas être utilisé pour initialiser un int code> appelé CHDIR code>.
Pour appeler la fonction que vous venez de faire: P> int CHDIR (sdirectory); code> n'est pas la syntaxe correcte pour appeler la fonction CHDIR code>. C'est une déclaration d'un INT code> appelé CHDIR code> avec un initialiseur de chaîne non valide (`sdirectory). int chdir_return_value = chdir(sDirectory.c_str());
Merci beaucoup. J'avais mal compris plusieurs choses lors de l'écriture de ce code, mais vous avez effacé ensuite.