basic_fstream – třída
Popisuje objekt, který řídí vkládání a extrakci prvků a kódovaných objektů pomocí vyrovnávací paměti datového proudu třídy basic_filebuf<Elem
,>Tr
s prvky typu Elem
, jejichž znakové vlastnosti jsou určeny třídou .Tr
Syntaxe
template <class Elem, class Tr = char_traits<Elem>>
class basic_fstream : public basic_iostream<Elem, Tr>
Parametry
Elem
Základní prvek vyrovnávací paměti souboru.
Tr
Vlastnosti základního prvku vyrovnávací paměti souboru (obvykle char_traits
Elem
<>).
Poznámky
Objekt ukládá objekt třídy basic_filebuf
<Elem
, . Tr
>
Poznámka:
Get pointer and put pointer of an fstream object are NOT independent of each other. Pokud se ukazatel get přesune, provede to ukazatel vložení.
Příklad
Následující příklad ukazuje, jak vytvořit basic_fstream
objekt, který lze číst a zapisovat do.
// basic_fstream_class.cpp
// compile with: /EHsc
#include <fstream>
#include <iostream>
using namespace std;
int main(int argc, char **argv)
{
fstream fs("fstream.txt", ios::in | ios::out | ios::trunc);
if (!fs.bad())
{
// Write to the file.
fs << "Writing to a basic_fstream object..." << endl;
fs.close();
// Dump the contents of the file to cout.
fs.open("fstream.txt", ios::in);
cout << fs.rdbuf();
fs.close();
}
}
Writing to a basic_fstream object...
Konstruktory
Konstruktor | Popis |
---|---|
basic_fstream | Vytvoří objekt typu basic_fstream . |
Členské funkce
Členová funkce | Popis |
---|---|
close | Zavře soubor. |
is_open | Určuje, zda je soubor otevřen. |
open | Otevře soubor. |
Rdbuf | Vrátí adresu uložené vyrovnávací paměti datového proudu, ukazatele typu basic_filebufElem <, . Tr > |
vyměnit | Vymění obsah tohoto objektu s obsahem jiného basic_fstream objektu. |
Požadavky
Header:<fstream>
Obor názvů: std
basic_fstream::basic_fstream
Vytvoří objekt typu basic_fstream
.
basic_fstream();
explicit basic_fstream(
const char* _Filename,
ios_base::openmode _Mode = ios_base::in | ios_base::out,
int _Prot = (int)ios_base::_Openprot);
explicit basic_fstream(
const wchar_t* _Filename,
ios_base::openmode _Mode = ios_base::in | ios_base::out,
int _Prot = (int)ios_base::_Openprot);
basic_fstream(basic_fstream&& right);
Parametry
_Jméno souboru
Název souboru, který se má otevřít.
_Režim
Jeden z výčtů v ios_base::openmode.
_Prot
Výchozí ochrana pro otevření souboru, která odpovídá parametru shflag v _fsopen, _wfsopen.
Poznámky
První konstruktor inicializuje základní třídu voláním basic_iostream(), kde sb
je uložený objekt třídy basic_filebuf<Elem, Tr>.sb
Inicializuje sb
se také voláním basic_filebuf
<Elem, Tr.>
Druhý a třetí konstruktory inicializuje základní třídu voláním basic_iostream
( sb). Inicializuje sb
se také voláním<basic_filebuf
Elem, Tr> a pak sb.open(_ Název souboru, _Mode
). Pokud druhá funkce vrátí ukazatel null, konstruktor volá setstate(failbit
).
Čtvrtý konstruktor inicializuje objekt s obsahem right
, považován za rvalue odkaz.
Příklad
Podívejte se na streampos pro příklad, který používá basic_fstream
.
basic_fstream::close
Zavře soubor.
void close();
Poznámky
Členová funkce volá rdbuf-> close.
Příklad
Příklad použití close
najdete v tématu basic_filebuf::close.
basic_fstream::is_open
Určuje, zda je soubor otevřen.
bool is_open() const;
Návratová hodnota
true
pokud je soubor otevřený, false
jinak.
Poznámky
Členová funkce vrátí rdbuf-is_open>.
Příklad
Příklad použití is_open
najdete v tématu basic_filebuf::is_open .
basic_fstream::open
Otevře soubor.
void open(
const char* _Filename,
ios_base::openmode _Mode = ios_base::in | ios_base::out,
int _Prot = (int)ios_base::_Openprot);
void open(
const char* _Filename,
ios_base::openmode _Mode);
void open(
const wchar_t* _Filename,
ios_base::openmode _Mode = ios_base::in | ios_base::out,
int _Prot = (int)ios_base::_Openprot);
void open(
const wchar_t* _Filename,
ios_base::openmode _Mode);
Parametry
_Jméno souboru
Název souboru, který se má otevřít.
_Režim
Jeden z výčtů v ios_base::openmode.
_Prot
Výchozí ochrana pro otevření souboru, která odpovídá parametru shflag v _fsopen, _wfsopen.
Poznámky
Členová funkce volá rdbuf -> open(_ Filename, _Mode
). Pokud tato funkce vrátí ukazatel null, funkce volá setstate( failbit
).
Příklad
Příklad použití open
najdete v tématu basic_filebuf::open.
basic_fstream::operator=
Přiřadí tomuto objektu obsah ze zadaného objektu datového proudu. Jedná se o přiřazení přesunutí, které zahrnuje hodnotu rvalue, která nenechá kopii za sebou.
basic_fstream& operator=(basic_fstream&& right);
Parametry
Vpravo
Lvalue odkaz na basic_fstream
objekt.
Návratová hodnota
Vrací objekt *this
.
Poznámky
Operátor člena nahrazuje obsah objektu použitím obsahu práva, považován za odkaz rvalue.
basic_fstream::rdbuf
Vrátí adresu uložené vyrovnávací paměti datového proudu ukazatele typu basic_filebuf <Elem, Tr.>
basic_filebuf<Elem, Tr> *rdbuf() const
Návratová hodnota
Adresa uložené vyrovnávací paměti datového proudu.
Příklad
Příklad použití rdbuf
najdete v tématu basic_filebuf::close.
basic_fstream::swap
Vymění obsah dvou basic_fstream
objektů.
void swap(basic_fstream& right);
Parametry
Vpravo
Odkaz lvalue
na basic_fstream
objekt.
Poznámky
Členová funkce vyměňuje obsah tohoto objektu a obsah práva.
Viz také
Bezpečný přístup z více vláken ve standardní knihovně C++
iostream – programování
iostreams – konvence