Ich lese ein Einführungsbuch zu C++. Darin gibt es ein Beispielprogramm zum Öffnen einer Datei.Grundlegende Dateiverarbeitung in C++, EOF-Erkennung
Der Code ist wie folgt ...
#include<iostream.h>
#include<fstream.h>
void main()
{
ifstream fin;
fin.open("country");
while(fin)
{
....
.....
}
}
Hier ist meine Zweifel. In dem Code sagt der Autor, dass fin auf 0 ausgewertet wird, wenn Fehler in der Dateioperation vorliegen (einschließlich End-of-File-Bedingung). In diesem Fall kann ein Objekt zu einer ganzen Zahl (dh 0) ausgewertet werden Some-Non-Null)?
Siehe: http://en.cppreference.com/w/cpp/io/basic_ios/operator_bool (und willkommen in der wunderbaren Welt der überladenen Betreiber). –
Beachten Sie, dass Fehler oder Status nur aktualisiert werden * nachdem ein E/A-Vorgang ausgeführt wurde *. Das bedeutet, dass die Verwendung von 'fin >>' zum Lesen eines Wertes dann EOF auslösen kann. –
Beachten Sie auch, dass Sie vielleicht ein [neueres/besseres Buch] (http://stackoverflow.com/q/388242/253056) erhalten möchten - 'void main' ist falsch, ebenso die Verwendung von' 'und' '(sie sind seit vielen Jahren veraltet - es sollte nur '' und '' sein). –