de nombreuses bibliothèques C acceptent les objets std :: fstream, tandis que les fonctions de bibliothèque C spécifiques nécessitent une poignée de fichier *. Cela pose un défi lorsque vous essayez d'utiliser ces bibliothèques. Implémentation STD :: fstream
Malheureusement, il n'y a pas de méthode directe pour extraire un fichier manche à partir d'un objet std :: fstream. En effet, l'implémentation de std :: fstream n'est pas standardisé pour utiliser le fichier
, le laissant à la discrétion de l'implémentation sous-jacente.
Alternatives à la conversion
En résultat, il n'est pas recommandé de tenter une conversion entre Std :: fstream et file *. Au lieu de cela, considérez les alternatives suivantes:Utilisez une fonction de wrapper C:
Écrivez une fonction wrapper qui accepte un std :: fstream et fournit une interface de fichier *. std :: fstream.
Considérez funopen () (non-Posix):Bien que ce ne soit pas une API POSIX, funopen () vous permet de créer un objet de fichier et de spécifier des opérations de fichiers personnalisées. Vous pouvez écrire des fonctions pour gérer les opérations de lecture, d'écriture, de recherche et de fermeture à l'aide de votre objet std :: fstream.
Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.
Copyright© 2022 湘ICP备2022001581号-3