basic_filebuf::close
Fecha um arquivo.
basic_filebuf<Elem, Tr> *close( );
Valor de retorno
A função de membro retorna um ponteiro nulo se o ponteiro de arquivo for um ponteiro nulo.
Comentários
por uma unha negra fclose(fp). Se a função retorna um valor diferente de zero, a função retorna um ponteiro nulo. Caso contrário, retorna this para indicar que o arquivo esteve fechada com êxito.
Para um fluxo todo, se qualquer inserção ocorreu desde que o fluxo esteve aberto, ou desde a última chamada para streampos, as chamadas de função estouro. Também inserirá qualquer sequência necessária para restaurar o estado inicial de conversão, usando a facetafac de conversão de arquivo para chamar quando necessário fac.unshift . Cada elemento byte de tipo char assim gerado é gravado no fluxo associado designado pelo ponteiro de arquivo fp como se por chamadas sucessivas do formulário fputc(byte, fp). Se a chamada a fac.unshift ou qualquer gravação falhar, a função não terá êxito.
Exemplo
O exemplo a seguir supõe dois arquivos no diretório atual: basic_filebuf_close.txt (o conteúdo “estão testando”) e iotest.txt (os conteúdos são “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( );
}
Requisitos
fstream <deCabeçalho: >
Namespace: std