basic_filebuf::close
會關閉檔案。
basic_filebuf<Elem, Tr> *close( );
傳回值
如果檔案指標設定為 null 指標,成員函式來傳回 null 指標。
備註
close 呼叫 fclose(fp)。 如果該函式傳回非零的值,則函式會傳回 null 指標。 否則,會傳回 this 表示檔案已成功關閉。
對於一條寬度資料流,則為,如果任何插入發生變更時,就會開啟資料流,或從 [ streampos上次呼叫時,函式會呼叫 溢位。 它可以插入所有序列需要還原初始的轉換狀態,您可以使用文件轉換為 fac 呼叫 fac.unshift (如果需要的話)。 型別 char 的每個項目 byte 剛才產生將檔案指標指定的這個關聯的資料流 fp ,就好像是由表單 fputc(byte, fp) 的後續呼叫。 如果對 fac.unshift 呼叫或任何一個寫入失敗,函式失敗。
範例
下列範例假設在目前目錄中的兩個檔案:basic_filebuf_close.txt (內容「test」) 和 iotest.txt (內容為「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( );
}
需求
標題: <fstream>
命名空間: std