ДАТОТЕКИ


Датотеките
се сложени типови на податоци во кои може да се запишуваат податоци,
и кои можат да бидат запамтени на некоја надворешна меморија со цел да можат да
бидат прочитани.

Прво треба да се вклучи библиотеката fstream. Може да се прави запис (додавање)
и читање во/од датотека.
За да се прави ова треба датотеките да се декларираат како во следната табела.

 

Декларација на датотека

Опис

ofstream

Креирање и за запишување во датотека.Доколку постои ја брише нејзината содржина

ifstream

за читање од посточка датотека

fstream

Комбинација на ofstream и ifstream: за запишување во датотека и читање на посточка датотека


Отворање на датотека

Датотеката мора да биде отворена пред да се прави запис или читање во/од неа. Доколку сакаме запис во неа мора да се влучи библиотека
ofstream или fstream. Доколку сакаме читање од неа мора да се влучи библиотека ifstream или fstream.  

Стандардна синтакса за функцијата open()

open(fizicko_ime, mode);

fizicko_ime - Точно име и локација на датотеката

mode - Начин на отворање на датотеката

Број

MODE/РЕЖИМИ - Начин на отворање на датотеката

1

ios::app

Режим на додавање во датотека. Додавањето се прави на крајот од датотеката

2

ios::in

Режим на отворање на датотека за читање.

3

ios::out

Режим на отворање на датотека за запис.

4

ios::trunc

Ако датотеката постои нејзината содржина ќе биде избришана пред отворањето.

 

Може да комбинираме неколку модови/режими

Пример ако сакаме да отвориме датотека со логичко име mojadat и физичко име datoteka.dat за запис
и претходно да биде избришана
:

ofstream mojadat;
mojadat.open("datoteka.dat", ios::out | ios::trunc ); //  |  е или
Пример ако сакаме да отвориме датотека со логичко име mojadat и физичко име datoteka.dat за запис 
или за читање:
fstream  mojadat;
mojadat.open("datoteka.dat", ios::out | ios::in );
Ако не се наведе режимот на отворање на датотеката тогаш зависно од начинот на отворање на истата
се зема нејзиниот режим кој се подразбира (default) (за ofstream e ios::out, a за ifstream e ios::in a за fstream мора 
да се дефинира режимот дали е ios::out или ios::in) .

Режим на работа кај датотеките

класа

default режим на работа

ofstream

ios::out

ifstream

ios::in

fstream

ios::in | ios::out

 

Пример:
// Отворање во режим за запис.
   ofstream mojadat;
   mojadat.open("datoteka.dat");   //делот ios::out е скокнат и се подразбира
	
// Отворање во режим за читање.
   ifstream mojadat; 
   mojadat.open("datoteka.dat"); // делот ios::in е скокнат и се подразбира

Стандардна синтакса за функцијата close() - затворање на датотека

logicko_ime.close()

 

Пример за запишување во ДАТОТЕКИ

#include <iostream>
#include <fstream>
using namespace std;

int main ()
{
ofstream mojadat ("primer.txt");       // mojadat е логичко име, а  primer.txt e физичко име на датотеката
if (mojadat.is_open())
    {
        mojadat << "Prva recenica.\n";
        mojadat << "Nova vtora recenica.\n";
        mojadat.close();
    }
    else
        cout << "Takva datteka ne postoi !!!";
return 0;
}