C ++ ifstream failbit et badbit

Dans le cas de ifstream en C ++, dans quelles conditions les failbit et de badbit sont- badbit définis?

Selon cplusplus.com :

failbit est généralement défini par une opération d’entrée lorsque l’erreur est liée à la logique interne de l’opération, de sorte que d’autres opérations sur le stream peuvent être possibles. Alors que badbit est généralement défini lorsque l’erreur implique la perte d’intégrité du stream, ce qui risque de persister même si une opération différente est effectuée sur le stream. badbit peut être vérifié indépendamment en appelant la fonction membre de manière incorrecte.

En termes simples , si vous obtenez un nombre, attendez-vous à récupérer une lettre , c’est un failbit . Si une erreur grave survient, ce qui perturbe la capacité de lire dans le stream – c’est un badbit .

Sauf les drapeaux mentionnés, il y en a un troisième assez similaire – eofbit . Vous pouvez vérifier l’état en utilisant plusieurs fonctions: ios::fail , ios::good et ios::bad

Et vous pouvez également vous familiariser avec la bibliothèque iostream sur les ressources MSDN.

Enfin , si vous cherchez la bonne solution pour gérer tous les bits et exceptions d’erreur lors de la lecture du fichier (ou l’access à certains fichiers ou répertoires), je vous recommande fortement de lire un article très complet et bien écrit. en utilisant ifstream: traiter correctement avec badbit, failbit, eofbit et perror () “, à la fin duquel vous trouverez quelques solutions idéales . L’article vaut vraiment la peine d’être lu.