Обробка файлів використовується для постійного зберігання даних у комп’ютері. Використовуючи обробку файлів, ми можемо зберігати наші дані у вторинній пам’яті (жорсткому диску).
Як досягти обробки файлів
Щоб досягти обробки файлів, нам потрібно виконати наступні кроки:-
КРОК 1. Назва файлу
КРОК 2 - Відкриття файлу
КРОК 3 - Запис даних у файл
КРОК 4. Зчитування даних із файлу
КРОК 5 - Закриття файлу.
Потоки на C++: -
Ми надаємо вхідні дані програмі, що виконується, а програма виконання повертає результат. Послідовність байтів, наданих як вхідні дані програмі, що виконується, і послідовність байтів, які надходять як вихідні дані програми, що виконується, називаються потоком. Іншими словами, потоки - це не що інше, як потік даних у послідовності.
Операція введення та виведення між програмою, що виконується, і такими пристроями, як клавіатура та монітор, відома як консольна операція вводу-виводу. Операція введення та виведення між виконуваною програмою та файлами відома як операція дискового введення-виведення.
Класи для операцій потоку файлів: -
Система введення-виведення C++ містить набір класів, які визначають методи обробки файлів. До них належать класи ifstream, ofstream і fstream. Ці класи є похідними від fstream і відповідного класу iostream. Ці класи, розроблені для керування файлами диска, оголошені у fstream, тому ми повинні включити цей файл у будь-яку програму, яка використовує файли.
1. ios:-
- ios означає вхідний вихідний потік.
- Цей клас є базовим для інших класів у цій ієрархії класів.
- Цей клас містить необхідні засоби, які використовуються всіма іншими похідними класами для операцій введення та виведення.
2. istream:-
- istream означає вхідний потік.
- Цей клас походить від класу «ios».
- Цей клас обробляє вхідний потік.
- Оператор вилучення (>>) перевантажений у цьому класі для обробки вхідних потоків від файлів до виконання програми.
- Цей клас оголошує такі функції введення, як get(), getline() і read().
3. з іншого боку: -
- ostream означає вихідний потік.
- Цей клас походить від класу «ios».
- Цей клас обробляє вихідний потік.
- Оператор вставки (<<) перевантажений у цьому класі для обробки вихідних потоків до файлів під час виконання програми.
- Цей клас оголошує такі функції виведення, як put() і write().
4. streambuf:-
3d в автокад
- Цей клас містить покажчик, який вказує на буфер, який використовується для керування вхідними та вихідними потоками.
5. fstreambase:-
- Цей клас забезпечує операції, загальні для файлових потоків. Служить основою для класів fstream, ifstream і ofstream.
- Цей клас містить функції open() і close().
6. ifstream:-
- Цей клас забезпечує операції введення.
- Він містить функцію open() із режимом введення за замовчуванням.
- Успадковує функції get(), getline(), read(), seekg() і tellg() від istream.
7. ofstream:-
- Цей клас забезпечує операції виведення.
- Він містить функцію open() із режимом виведення за замовчуванням.
- Успадковує функції put(), write(), seekp() і tellp() від ostream.
8. fstream:-
- Цей клас забезпечує підтримку одночасних операцій введення та виведення.
- Успадковує всі функції від класів istream і ostream через iostream.
9. filebuf:-
- Його призначення — налаштувати файлові буфери на читання та запис.
- Ми також можемо використовувати функцію члена файлового буфера, щоб визначити довжину файлу.
У C++ файли в основному обробляються за допомогою трьох класів fstream, ifstream, ofstream, доступних у файлі заголовка fstream.
ofstream: Потоковий клас для запису у файли
ifstream: Потоковий клас для читання з файлів
fstream: Потоковий клас для читання та запису з/у файли.

Тепер перший крок, щоб відкрити певний файл для операції читання або запису. Ми можемо відкрити файл за допомогою
1. передача імені файлу в конструкторі під час створення об'єкта
2. за допомогою відкритого методу
Для напр.
Відкрити файл за допомогою конструктора
ifstream (const char* ім’я файлу, режим ios_base::openmode = ios_base::in);
ifstream fin(ім'я файлу, openmode) за замовчуванням openmode = ios::in
ifstream fin(ім'я файлу);Відкрийте файл за допомогою відкритого методу
Виклик конструктора за замовчуванням
кінець ifstream;
fin.open(ім'я файлу, відкритий режим)
fin.open(ім'я файлу);
Режими:
| Постійний член | Виступає за | Доступ |
|---|---|---|
| в * | введення | Файл відкрито для читання: внутрішній буфер потоку підтримує операції введення. |
| поза | вихід | Файл відкрито для запису: внутрішній буфер потоку підтримує операції виведення. |
| двійковий | двійковий | Операції виконуються в двійковому режимі, а не в текстовому. |
| їв | в кінці | Позиція виведення починається в кінці файлу. |
| додаток | додавати | Усі операції виведення виконуються в кінці файлу, додаючи його до наявного вмісту. |
| стовбур | урізати | Будь-який вміст, який існував у файлі до його відкриття, відкидається. |
Відкриті режими за замовчуванням:
| ifstream | ios::in |
| ofstream | ios::out |
| fstream | ios::in | ios::out |
Постановка проблеми : для читання та запису файлу на C++.
приклади:
Input : Welcome in techcodeview.com. Best way to learn things. -1 Output : Welcome in techcodeview.com. Best way to learn things.>
Нижче наведено реалізацію за допомогою класи ifstream і ofstream .
C++
/* File Handling with C++ using ifstream & ofstream class object*/> /* To write the Content in File*/> /* Then to read the content of file*/> #include> /* fstream header file for ifstream, ofstream,> >fstream classes */> #include> using> namespace> std;> // Driver Code> int> main()> {> >// Creation of ofstream class object> >ofstream fout;> >string line;> >// by default ios::out mode, automatically deletes> >// the content of file. To append the content, open in ios:app> >// fout.open('sample.txt', ios::app)> >fout.open(>'sample.txt'>);> >// Execute a loop If file successfully opened> >while> (fout) {> >// Read a Line from standard input> >getline(cin, line);> >// Press -1 to exit> >if> (line ==>'-1'>)> >break>;> >// Write line in file> >fout << line << endl;> >}> >// Close the File> >fout.close();> >// Creation of ifstream class object to read the file> >ifstream fin;> >// by default open mode = ios::in mode> >fin.open(>'sample.txt'>);> >// Execute a loop until EOF (End of File)> >while> (getline(fin, line)) {> > >// Print line (read from file) in Console> >cout << line << endl;> >}> >// Close the file> >fin.close();> >return> 0;> }> |
>
>
Часова складність: O(n)
Допоміжний простір: O(1)
Нижче наведено реалізацію за допомогою клас fstream .
C++
/* File Handling with C++ using fstream class object */> /* To write the Content in File */> /* Then to read the content of file*/> #include> /* fstream header file for ifstream, ofstream,> >fstream classes */> #include> using> namespace> std;> // Driver Code> int> main()> {> >// Creation of fstream class object> >fstream fio;> >string line;> >// by default openmode = ios::in|ios::out mode> >// Automatically overwrites the content of file, To append> >// the content, open in ios:app> >// fio.open('sample.txt', ios::in|ios::out|ios::app)> >// ios::trunc mode delete all content before open> >fio.open(>'sample.txt'>, ios::trunc | ios::out | ios::in);> >// Execute a loop If file successfully Opened> >while> (fio) {> >// Read a Line from standard input> >getline(cin, line);> >// Press -1 to exit> >if> (line ==>'-1'>)> >break>;> >// Write line in file> >fio << line << endl;> >}> >// Execute a loop until EOF (End of File)> >// point read pointer at beginning of file> >fio.seekg(0, ios::beg);> >while> (fio) {> >// Read a Line from File> >getline(fio, line);> >// Print line in Console> >cout << line << endl;> >}> >// Close the file> >fio.close();> >return> 0;> }> |
>
>
Часова складність: O(n)
Допоміжний простір: O(1)
C++
Q: write a single file handling program in c++ to reading and writing data on a file.> #include> #include> > using> namespace> std;> main()> {> >int> rno,fee;> >char> name[50];> > >cout<<>'Enter the Roll Number:'>;> >cin>>rno;>> > >cout<<>'
Enter the Name:'>;> >cin>>ім'я;> > >cout<<>'
Enter the Fee:'>;> >cin>>плата;> > >ofstream fout(>'d:/student.doc'>);> > >fout<' '<' '/write data to the file student fout.close(); ifstream fin('d:/student.doc'); fin>>rno>>name>>плата; //читання даних з файлу student fin.close(); cout<' '<' '< return 0; }> |
>
>
Часова складність: O(1)
Допоміжний простір: O(1)
C++
// Q: WA C++ file handling program to read data from the file called student.doc> #include> #include> using> namespace> std;> main()> {> >int> rno,fee;> >char> name[50];> > >ifstream fin(>'d:/student.doc'>);> > >fin>>rno>>name>>плата;>//read data from the file student> > >fin.close();> > >cout<' '<' '< return 0; }> |
>
>
string.contains java
Часова складність: O(1)
Допоміжний простір: O(50)