Freigeben über


basic_filebuf::close

Schließt eine Datei.

basic_filebuf<Elem, Tr> *close( );

Rückgabewert

Die Memberfunktion gibt einem NULL-Zeiger zurück, wenn der Dateizeiger ein NULL-Zeiger ist.

Hinweise

schließen ruft fclose(fp). Wenn diese Funktion einen Wert ungleich 0 (null) zurückgibt, gibt die Funktion einem NULL-Zeiger zurück. Andernfalls gibt diese this zurück, um anzugeben, dass die Datei erfolgreich geschlossen wurde.

Bei einem Breitzeichen Stream wenn Einfügungen aufgetreten sind, seit der Stream geöffnet war, oder seit dem letzten Aufruf von streampos, die durch Überlauf. Es fügt auch jede Sequenz ein, die erforderlich ist, um den ursprünglichen Konvertierungszustand wiederherzustellen, indem das Dateikonvertierungsfacet fac verwendet, um fac.unshift bei Bedarf aufzurufen. Jedes Element byte des Typs char erstellt daher wird dem zugeordneten Stream geschrieben, den der Dateizeiger fp als ob durch aufeinander folgende Aufrufe des Formulars fputc(byte, fp) festgelegt wird. Wenn der Aufruf von fac.unshift oder alle fehlschlägt, die Funktion nicht folgt schreiben.

Beispiel

Im folgenden Beispiel werden zwei Dateien im aktuellen Verzeichnis an: basic_filebuf_close.txt (Inhalt "Tests") und iotest.txt (Inhalt ist "ssss").

// basic_filebuf_close.cpp
// compile with: /EHsc
#include <fstream>
#include <iostream>

int main() {
   using namespace std;
   ifstream file;
   basic_ifstream <wchar_t> wfile;
   char c;
   // Open and close with a basic_filebuf
   file.rdbuf()->open( "basic_filebuf_close.txt", ios::in );
   file >> c;
   cout << c << endl;
   file.rdbuf( )->close( );

   // Open/close directly
   file.open( "iotest.txt" );
   file >> c;
   cout << c << endl;
   file.close( );

   // open a file with a wide character name
   wfile.open( L"iotest.txt" );

   // Open and close a nonexistent with a basic_filebuf
   file.rdbuf()->open( "ziotest.txt", ios::in );
   cout << file.fail() << endl;
   file.rdbuf( )->close( );

   // Open/close directly
   file.open( "ziotest.txt" );
   cout << file.fail() << endl;
   file.close( );
}
  

Anforderungen

Header: <fstream>

Namespace: std

Siehe auch

Referenz

basic_filebuf-Klasse

iostream-Programmierung

iostreams-Konventionen