Est ios::in requis pour ifstream est ouvert en mode binaire?
Quelle est la différence entre ces deux? N'est-ce pas le in
drapeau objet redondant? Merci.
std::ifstream file1("one.bin", std::ifstream::in | std::ifstream::binary);
std::ifstream file2("two.bin", std::ifstream::binary);
hum... de la documentation, je ne pense pas que c'est redondant; et il est d'une valeur de 30 secondes pour ... à essayer 🙂
Pourquoi est-il pertinent si son binaire ou pas?
Pourquoi est-il pertinent si son binaire ou pas?
OriginalL'auteur catfish_deluxe_call_me_cd | 2011-09-18
Vous devez vous connecter pour publier un commentaire.
De docs sur
ifstream
constructeur de la classe:Donc lors de la lecture d'un fichier, je voudrais utiliser
std::ifstream::in
drapeau pas parce que c'est nécessaire (ou pas), mais parce que ce serait une bonne pratique de programmation laisser une interface de programmation sais ce que vous allez utiliser pour.Edit:
Ce qui suit est tiré http://www.cplusplus.com/doc/tutorial/files/, sur
open()
membre de la fonction si (mais les constructeurs dans le code de la question probablement appelopen()
de copier le mode de drapeaux sans modification).Néanmoins, de nombreux exemples sur l'utilisation du Web
ifstream::in
lors de l'affichage d'une construction d'uneifstream
objet. Pourrait vraiment être une sorte de superstition pratique, au lieu d'une programmation.ifstream
sais que je veux l'utiliser pour ? Je pourrais tout aussi bien utiliser de la plainefstream
ensuite - et c'est pourquoi j'ai posté cette question dans la première place. 🙂Ouais, bon point 😛 j'ai déjà eu plus doux sur elle dans l'édition.
Les gars, arrêtez de upvoting ma réponse, car elle ne donne pas vraiment beaucoup d'une réponse, juste exprime une opinion personnelle, plus donne quelques indirectement info sur
open()
de la fonction membre. Toutefois, cela ne signifie pas que je veux obtenir downvoted =)Eh bien, si cela arrive pour
open()
je pense qu'il est raisonnable de supposer qu'il se passe aussi pour le constructeur.OriginalL'auteur Desmond Hume
binary
, dans ce cas, seulement se réfère à la méthode de lecture ou d'écriture. En mode normal sur windows,'\n'
est traduite en'\r''\n'
. Cela peut affecter à la fois la lecture et de l'écriture, de sorte que le mode binaire désactive cette fonctionnalité.out|binary
fait autant de sens quein|binary
OriginalL'auteur Dave
Je ne peux pas trouver de la documentation de référence en ligne.
Modifier je ne peux même pas trouver une référence dans mon exemplaire de la Josuttis Livre, 8e de l'impression. Il doit avoir été dans la section 13.9 pp. 627-631
Des preuves empiriques, il est redondant IFF aucun des std::ios::in ou std::ios:sont transmis:
Réussit:
montrent la même somme de hachage.
sera un échec (zéro octets de sortie)
OriginalL'auteur sehe