Dans le code C contenant la ligne suivante :
file.open(name);
une erreur courante est :
no matching function for call 'std::ifstream::open(std::string&)'
Ce problème se pose car les anciennes versions de C (antérieures à C 11) ne prenaient pas en charge l'ouverture d'un fichier à l'aide d'un argument std::string. La fonction open() nécessitait un tableau de caractères ou une chaîne de style C.
Pour résoudre cette erreur, vous pouvez utiliser l'une des approches suivantes :
file.open(name.c_str());
std::ifstream file(name.c_str());
Cette approche élimine le besoin de séparer la construction et ouverture.
De plus, pour s'assurer que la fonction loadNumbersFromFile() ne modifie pas son argument, il convient de passer par référence à une constante std::string à la place :
std::vector<int> loadNumbersFromFile(const std::string& name) { // ... }
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!