Question

J'utilisais le formulaire utilisé dans l'une des questions connexes. Le seul problème est que je continue à passer à la fin du fichier.

Le fichier est un fstream et le STR est une chaîne.

Exception non perdue Microsoft C ++ Exception: std :: iOS_Base :: échec

while (getline(file, str)) 
{

}

if (cin.bad ()) {// io error} else if (! cin.eof ()) {// Erreur de format (pas possible avec getline mais possible avec l'opérateur >>)} else {// Erreur de format (pas possible avec getline mais possible avec l'opérateur >>) // ou la fin du fichier (ne peut pas faire la différence)}

Était-ce utile?

La solution

Si vous obtenez std::ios_base::failure Exceptions lancées Il est probablement causé par vous (ou un code que vous utilisez) les activer pour votre fichier. Ils devraient être désactivés par défaut. Juste pour tester, vous pouvez essayer de les éteindre immédiatement avant la boucle while, mais vous devez probablement enquêter sur ce qui les allume.

file.exceptions(std::ios_base::goodbit);
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top