Partager via


basic_filebuf::close

Ferme un fichier.

basic_filebuf<Elem, Tr> *close( );

Valeur de retour

La fonction membre retourne un pointeur null si le pointeur de fichier est un pointeur null.

Notes

close appelle fclose(fp). Si cette fonction retourne une valeur différente de zéro, la fonction retourne un pointeur null. Sinon, elle retourne this pour indiquer que le fichier a été correctement fermé.

Pour un flux large, si des insertions se sont produites depuis que le flux de données a été ouvert, ou depuis le dernier appel à streampos, la fonction appelle un dépassement de capacité. Il insère n'importe quelle séquence nécessaire pour restaurer l'état de conversion initial, en utilisant la facettefac  de conversion de fichier pour appeler fac.unshift comme nécessaire. Chaque élément byte de type charainsi produit est enregistré dans le flux associé indiqué par le pointeur de fichier fp comme par des appels consécutifs du formulaire fputc(byte, fp). Si l'appel à fac.unshift ou à toute écriture échoue, la fonction ne réussit pas.

Exemple

L'exemple suivant suppose qu'il y a deux fichiers dans le répertoire actif : basic_filebuf_close.txt (le contenu « testing ») et iotest.txt (le contenu est « 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( );
}
  

Configuration requise

En-tête: <fstream>

Espace de noms : std

Voir aussi

Référence

basic_filebuf, classe

iostream, programmation

iostreams, conventions