Ich arbeite an einem Projekt für eine Klasse, in der wir nichts außer für Variablendeklarationen und Funktionsaufrufe haben müssen.ifstream var.fail() in der Funktion
Normalerweise prüfe ich für einen in/outfile Ausfall durch diese Zeilen Code im Haupt:
if((inFile.fail()) || (outfile.fail())
{
cout << "File I/O Failure";
return 1;
}
Für dieses Projekt jedoch all meine Code in Funktionen eingebettet werden muss. Ich habe eine Funktion void openFile(ifstream& fin, ofstream& fout)
, die die Namen infile
und outfie
setzt und sie öffnet.
Die Frage ist, wie schreibe ich eine Funktion, die auf Fehler testen und das Programm auf Fehler beenden würde, aber das Programm nicht schließen.
Zum Beispiel:
int file_failure(ifstream& fin, ofstream& fout)
{
if((fin.fail()) || (fout.fail()))
{
return 1;
}
else
{
// don't return a value.
}
}
Mein hangup oder vielleicht mein Missverständnis ist int main()
schließt auf einen int-Wert empfangen, das ist, was ich will, wenn ein Fehler ist, die in/out-Datei beim Öffnen, aber ich tun nicht wollen, dass meine file_failure() einen int zu main zurückgibt und das Programm schließt, wenn der I/O gut ist.
Wieder kann ich absolut keinen Code neben var Deklarations- und Funktionsaufrufen im Wesentlichen für dieses Projekt haben.
-Danke Josh
Definieren Sie "beenden ..., aber nicht das Programm schließen". –
Das Programm wird geschlossen *, wenn main zurückkehrt *. Nicht wenn etwas anderes zu Main zurückkehrt. – immibis