J'ai lu toujours et a dit que lorsqu'ils traitent des fichiers binaires que l'on doit utiliser read() et write() par opposition aux opérateurs < <et> > car ils sont destinés pour une utilisation avec des données formatées. J'ai aussi lu qu'il est possible de les utiliser, mais c'est un sujet avancé, que je ne peux pas trouver là où quelqu'un plonge et discute.C++ fstream << and >> opérateurs avec des données binaires
J'ai vu récemment un code qui a fait ce qui suit:
std::ifstream file1("x", ios_base::in | ios_base::binary); std::ofstream file2("y", ios_base::app | ios_base::binary); file1 << file2.rdbuf();
Lorsque je l'ai souligné l'utilisation de l'opérateur < < avec le fichier binaire, on m'a dit que l'appel rdbuf() retourne une streambuf * et que < < surcharge le streambuf * et effectue une copie directe sans formatage et est donc sûr.
Est-ce vrai et aussi sûr? Que diriez-vous d'efficacité? Des pièges? Les détails seraient très appréciés.
Merci!
Est-ce une page dans la norme ou quoi? :) Un lien serait sympa! – Skurmedel
Ceci est une référence à un paragraphe de la norme. La norme elle-même n'est pas accessible au public. Certains brouillons sont mais je n'ai pas un lien facilement. – AProgrammer
D'accord, merci de clarifier. Ils devraient rendre le public standard. – Skurmedel