Работа с файлове в C ++: Как да отваряте, пишете, четете, затваряте файлове в C ++

Какво представлява обработката на файлове в C ++?

Файловете съхраняват данни постоянно в устройство за съхранение. С обработката на файлове изходът от програма може да се съхранява във файл. Различни операции могат да се извършват върху данните, докато са във файла.

Потокът е абстракция на устройство, където се извършват операции за въвеждане/извеждане. Можете да представите поток като дестинация или източник на символи с неопределена дължина. Това ще се определя от тяхното използване. C ++ ви предоставя библиотека, която се предлага с методи за обработка на файлове. Нека го обсъдим.

В този урок по c ++ ще научите:

Библиотеката на fstream

Библиотеката fstream предоставя на програмистите на C ++ три класа за работа с файлове. Тези класове включват:

  • от потока - Този клас представлява изходен поток. Използва се за създаване на файлове и записване на информация във файлове.
  • ifstream - Този клас представлява входен поток. Използва се за четене на информация от файлове с данни.
  • fstream - Този клас обикновено представлява файлов поток. Той идва с възможности за офлайн/ifstream. Това означава, че е в състояние да създава файлове, да записва във файлове, да чете от файлове с данни.

Следното изображение улеснява разбирането:

fstream библиотека



За да използвате горните класове на библиотеката fstream, трябва да я включите в програмата си като заглавен файл. Разбира се, ще използвате директивата за препроцесора #include. Трябва също да включите заглавния файл на iostream.

Как да отворите файлове

Преди да извършите каквато и да е операция с файл, първо трябва да го отворите. Ако трябва да пишете във файла, отворете го с помощта на fstream или ofstream обекти. Ако трябва само да четете от файла, отворете го, като използвате обекта ifstream.

Трите обекта, тоест fstream, ofstream и ifstream, имат функцията open (), дефинирана в тях. Функцията приема този синтаксис: | _+_ |

  • Параметърът file_name обозначава името на файла за отваряне.
  • Параметърът на режима не е задължителен. Тя може да приеме някоя от следните стойности:
Стойност Описание
ios :: приложениеРежимът на добавяне. Изходът, изпратен към файла, се добавя към него.
ios :: изядеТой отваря файла за изхода, след което премества контролата за четене и запис до края на файла.
ios :: вОтваря файла за четене.
ios :: outОтваря файла за запис.
ios :: багажникАко файл съществува, файловите елементи трябва да бъдат отрязани преди отварянето му.

Възможно е да се използват два режима едновременно. Комбинирате ги с помощта на | (ИЛИ) оператор.

Пример 1:

 open (file_name, mode); 

Изход:

Ето екранна снимка на кода:

Код Обяснение:

  1. Включете заглавния файл на iostream в програмата, за да използвате нейните функции.
  2. Включете заглавния файл fstream в програмата, за да използвате нейните класове.
  3. Включете пространството на имената std в нашия код, за да използвате неговите класове, без да го извиквате.
  4. Извикайте функцията main (). Логиката на програмата трябва да е в нейното тяло.
  5. Създайте обект от класа fstream и му дайте името my_file.
  6. Приложете функцията open () към горния обект, за да създадете нов файл. Изходният режим ни позволява да записваме във файла.
  7. Използвайте оператора if, за да проверите дали създаването на файл е неуспешно.
  8. Съобщение за отпечатване на конзолата, ако файлът не е създаден.
  9. Край на тялото на израза if.
  10. Използвайте оператор else, за да посочите какво да правите, ако файлът е създаден.
  11. Съобщение за отпечатване на конзолата, ако файлът е създаден.
  12. Приложете функцията close () към обекта, за да затворите файла.
  13. Край на тялото на изявлението else.
  14. Програмата трябва да върне стойност, ако завърши успешно.
  15. Край на тялото на основната () функция.

Как да затворите файлове

След като програмата на C ++ приключи, тя автоматично

  • промива потоците
  • освобождава разпределената памет
  • затваря отворени файлове.

Като програмист обаче трябва да се научите да затваряте отворени файлове, преди програмата да се прекрати.

Обектите fstream, ofstream и ifstream имат функцията close () за затваряне на файлове. Функцията приема този синтаксис: | _+_ |

Как да пиша във файлове

Можете да пишете във файл направо от вашата C ++ програма. Използвате оператор за вмъкване на поток (<<) for this. The text to be written to the file should be enclosed within double-quotes.

Нека покажем това.

Пример 2:

 #include #include using namespace std; int main() { fstream my_file; my_file.open('my_file', ios::out); if (!my_file) { cout << 'File not created!'; } else { cout << 'File created successfully!'; my_file.close(); } return 0; } 

Изход :

Ето екранна снимка на кода:

Код Обяснение:

  1. Включете заглавния файл на iostream в програмата, за да използвате нейните функции.
  2. Включете заглавния файл fstream в програмата, за да използвате нейните класове.
  3. Включете пространството на имената std в програмата, за да използвате неговите класове, без да го извиквате.
  4. Извикайте функцията main (). Логиката на програмата трябва да бъде добавена в тялото на тази функция.
  5. Създайте екземпляр на класа fstream и му дайте името my_file.
  6. Използвайте функцията open (), за да създадете нов файл с име my_file.txt. Файлът ще бъде отворен в режим на изход за запис в него.
  7. Използвайте оператор if, за да проверите дали файлът не е отворен.
  8. Текст за печат на конзолата, ако файлът не е отворен.
  9. Край на тялото на израза if.
  10. Използвайте оператор else, за да посочите какво да правите, ако файлът е създаден.
  11. Текст за печат на конзолата, ако файлът е създаден.
  12. Напишете текст към създадения файл.
  13. Използвайте функцията close (), за да затворите файла.
  14. Край на тялото на изявлението else.
  15. Програмата трябва да върне стойност при успешно завършване.
  16. Край на тялото на функцията main ().

Как да чета от файлове

Можете да четете информация от файлове във вашата C ++ програма. Това е възможно с помощта на оператор за извличане на поток (>>). Използвате оператора по същия начин, по който го използвате за четене на въвеждане от потребителя от клавиатурата. Въпреки това, вместо да използвате обекта cin, вие използвате обекта ifstream/ fstream.

Пример 3:

 void close(); 

Изход:

Няма такъв файл

Ето екранна снимка на кода:

Код Обяснение:

  1. Включете заглавния файл на iostream в програмата, за да използвате нейните функции.
  2. Включете заглавния файл fstream в програмата, за да използвате нейните класове.
  3. Включете пространството на имената std в програмата, за да използвате неговите класове, без да го извиквате.
  4. Извикайте функцията main (). Логиката на програмата трябва да бъде добавена в тялото на тази функция.
  5. Създайте екземпляр на класа fstream и му дайте името my_file.
  6. Използвайте функцията open (), за да създадете нов файл с име my_file.txt. Файлът ще бъде отворен в режим in за четене от него.
  7. Използвайте оператор if, за да проверите дали файлът не съществува.
  8. Текст за печат на конзолата, ако файлът не е намерен.
  9. Край на тялото на израза if.
  10. Използвайте оператор else, за да посочите какво да правите, ако файлът бъде намерен.
  11. Създайте променлива char с име ch.
  12. Създайте цикъл while за повторение на съдържанието на файла.
  13. Записване/съхраняване на съдържанието на файла в променливата ch.
  14. Използвайте if условие и eof () функция, която е краят на файла, за да сте сигурни, че компилаторът продължава да чете от файла, ако краят не е достигнат.
  15. Използвайте оператор break, за да спрете четенето от файла, след като се достигне края.
  16. Отпечатайте съдържанието на променлива ch на конзолата.
  17. Край на тялото.
  18. Край на тялото на изявлението else.
  19. Извикайте функцията close (), за да затворите файла.
  20. Програмата трябва да върне стойност при успешно завършване.
  21. Край на тялото на функцията main ().

Резюме:

  • С обработката на файлове, изходът на програма може да бъде изпратен и съхранен във файл.
  • След това могат да бъдат приложени редица операции към данните, докато са във файла.
  • Потокът е абстракция, която представлява устройство, където се извършват операции за въвеждане/извеждане.
  • Потокът може да бъде представен като дестинация или източник на символи с неопределена дължина.
  • Библиотеката fstream предоставя на програмистите на C ++ методи за обработка на файлове.
  • За да използвате библиотеката, трябва да я включите в програмата си, като използвате директивата на препроцесора #include.