Maison > développement back-end > C++ > Pourquoi `ifstream::open()` ne fonctionne-t-il pas avec les arguments `std::string` ?

Pourquoi `ifstream::open()` ne fonctionne-t-il pas avec les arguments `std::string` ?

Mary-Kate Olsen
Libérer: 2024-12-08 04:29:10
original
888 Les gens l'ont consulté

Why Doesn't `ifstream::open()` Work with `std::string` Arguments?

Aucune fonction de correspondance pour ifstream open()

Le problème se pose dans l'extrait de code :

std::ifstream file;
file.open(name); // the error is here
Copier après la connexion

Dev C rencontre des erreurs "aucune fonction correspondante pour l'appel 'std::basic_ifstream::open(std::string&)" et "aucune fonction correspondante pour l'appel 'std::basic_ofstream::open(std::string&)". Ces erreurs se produisent parce que la fonction open() dans ifstream attend une chaîne de style C comme argument, mais le code fournit un std::string.

Solution :

Pour résoudre ce problème, convertissez la std::string en une chaîne de style C à l'aide de la fonction membre c_str() :

file.open(name.c_str());
Copier après la connexion

Alternativement, vous peut directement initialiser l'objet ifstream avec la chaîne de style C :

std::ifstream file(name.c_str());
Copier après la connexion

De plus, pensez à déclarer loadNumbersFromFile() comme suit :

std::vector<int> loadNumbersFromFile(const std::string& name)
Copier après la connexion

Ce changement indique que la fonction ne modifier son argument et évite une copie inutile.

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal