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