DATOVÉ PROUDY
Datové proudy. Práce se soubory.Formátovaný vstup a výstup je praktický shodný i při práci se soubory. Rozdíl je v hlavičkovém souboru, který musíme k programu připojit a také v označení tříd, pomocí kterých se přístup k souboru realizuje. Jsou to ofstream pro výstup a ifstream pro vstup. Implicitně práce se vstupním nebo výstupním proudem probíhá v textovém
Hierarchie tříd vztahující se k datovým tokům pro soubory:
Otevření souboru je možné dvěma způsoby:
Uzavření souboru se obdobně provádí dvěma způsoby:
Otevření pomocí konstruktoru
ifstream(const char *name, int mode = ios::in, int =
filebuf::openprot);
ofstream(const char *name, int mode = ios::out, int prot =
filebuf::openprot);
fstream(const char *name, int mode = ios::in, int prot =
filebuf::openprot);
První parametr je cesta k souboru, druhý parametr jsou atributy otevření souboru (viz. tabulka), třetí parametr je pro sdílení souboru.
Režim popis činnosti
ios::app Připojuje data na konec souboruios::ate nastaví se na konec souboru
ios::in při otevření nastaví režim čtení (implicitní pro ifstream)
ios::out při otevření nastaví režim zápis (implicitní pro ofstream)
ios::binary otevře soubor v binárním režimu
ios::trunc pokud soubor existuje, zruší jeho obsah (implicitní je-li ios::out a není buď ios::ate nebo ios::app)
ios::nocreate otevření se neprovede, pokud soubor neexistuje
ios::noreplace existuje-li soubor, zhavaruje otevření pro výstup, není-li nastaveno ios::app nebo ios::ate
Možné parametry pro sdílení:
filebuf::sh_compact - stejné jako implicitní hodnota
filebuf::openprot, soubor lze sdílet, pokud to povolí operační systém
filebuf::sh_none - soubor nelze sdílet
filebuf::sh_read - soubor lze sdílet jen při čtení
/*** příklad otevření souboru pomocí konstruktoru ***/
#include <fstream.h>
void main(void)
{
ofstram of("soubor.dat",ios::out | ios::binary);
if (of != 0)
{
float f;
for (int i = 0; i<50, i++)
{
f=i*i;
of.write((const char *)&f, sizeof(f) );
//neformátovan zápis
}
of.close( );
}
}
/***************** konec *******************/
Autor: Filip Koval