-
fstream ou filebuf ?
Quand j'accède aux fichiers j'utilise en général les fonctions de l'OS.
Parfois j'utilise les std::fstream (et ses varioantes i, o, io) quand j'ai des choses simples à faire qui demande un formatage, mais souvent ça reste du fichier binaire et ça me lasse de devoir spécifier en permanence ios::binary.
Je me propose désormais d'utiliser std::filebuf, mais j'aimerais en connaitre les avantages et inconvénients. Je trouve finalement les fstream assez contraignants. Je souhaiterai aussi me débarrasser un peu de l'habitude d'utiliser les fonctions de l'OS.
Merci.
-
Les filebuf sont en général suffisants pour manipuler des fichiers binaires.
Les fstream sont une abstraction au dessus des filebuf qui rajoute le formatage textuel et une gestion d'erreur plus évoluée. Donc clairement pour des fichiers texte, même si beaucoup les utilisent aussi pour du binaire.
-
Merci.
J'oubliais aussi une des principales raisons pour lesquelles j'utilise les fonctions de l'OS: l'accès à des fichiers >2GB (voire 4GB). Je ne vois rien dans la SL qui le permette.
-
Je ne vois rien dans la SL qui ne le permette pas ;)
Ça dépend de l'implémentation, les implémentations récentes de la SL le permettent toutes, je pense, au pire avec une option de compilation.
-
OK, bon.
Faudra vraiment que je me débarrasse de ce bon vieux VC++6 un de ces quatre...