*** В заглавния файл fstream
са дефинирани обекти, функции и операции за работа с файлове.
А) Файл за четене.
* дефиниране на файлова променлива за четене - обект от класа ifstream:
ifstream inp_data;
* отваряне на файл от текущата директория с име input.dat:
inp_data.open("input.dat");
* четене от файл на:
- цели числа и числа с плаваща точка
int n;
double x;
inp_data >> n >> x;
- низове
string s;
inp_data >> s;
// чете до разделител
getline(inp_data, s); //
чете цял ред
- символи
char ch;
inp_data.get(ch);
// чете един символ
inp_data.unget();
// връща последния прочетен символ в буфера
* затваряне на файл
inp_data.close();
// readf.cpp
#include <iostream>
#include <fstream>
/* включване на заглавен файл */
#include <string>
using namespace std;
int main()
{ ifstream in_data; /* дефиниране
на файлова променлива за четене */
in_data.open("readf.txt");
/* отваряне на файла input.txt */
string s1, s2;
getline(in_data, s1);
/* четене на ред */
in_data >> s2;
/* четене на дума */
int n;
double x;
in_data >> n >> x;
/* четене на числови данни */
char ch;
while (!in_data.eof())
in_data.get(ch);
/* четене на символ */
in_data.close();
/* затваряне на файла */
cout << s1 <<
endl << s2 << " "
<< n << " " << x << " " << ch << endl;
return 0;
}
Файл readf.txt:
many happy words
one_word 123 9.98 N
many happy words
one_word 123 9.98 N |
Б) Файл за писане.
* дефиниране на файлова променлива за писане - обект от класа ofstream:
ofstream out_data;
* отваряне на файл
out_data.open("output.dat");
* писане във файл с:
- изходен поток
int n = 2;
double x = 1.5;
string s = " Hello";
out_data << n <<
" " << x << s;
- член-функция
char ch = 'A';
out_data.put(ch);
* затваряне на файл
out_data.close();
// writef.cpp
#include <iostream>
#include <fstream>
/* включване на заглавен файл */
#include <string>
using namespace std;
int main()
{ ofstream out_data; /* дефиниране
на файлова променлива за писане */
out_data.open("writef.txt");
/* отваряне на файла writef.txt */
string s = "Hello";
out_data << s <<
endl; /* писане на низ */
int n = 5;
double x = 5.5;
out_data << n <<
" " << x << " "; /* писане на числови данни */
char ch = 'T';
out_data.put(ch); /* писане
на символ */
out_data.close();
/* затваряне на файла */
return 0;
}
Файл writef.txt:
Hello
5 5.5 T