Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
работа с файлами с++.docx
Скачиваний:
2
Добавлен:
01.03.2025
Размер:
55 Кб
Скачать
☆

Закрытие файла

Когда мы закончили с нашими операций ввода-вывода в файл, который мы должны закрыть его, так что его ресурсы становятся снова доступными. Для того, чтобы сделать это, мы должны назвать членом потока Функция Close (). Эта функция не принимает никаких параметров, и то, что он делает это, чтобы избавиться соответствующих буферов и закройте файл:

 

myfile.close();

Как только эта функция вызывается, поток объект может быть использован для открытия другого файла, а файл доступен снова будет открыта других процессов.

В случае, если объект разрушается в то же время связан с открытым файлом, деструктор автоматически вызывает близкий член функции close().

Текстовые файлы

Потоки текстовых файлов являются те, где мы не включаем ios::binary  им в открытом режиме. Эти файлы предназначены для хранения текста и таким образом, все ценности, которые мы входе или выходе из / в них могут пострадать некоторые элементы форматирования преобразования, которые не обязательно соответствуют их буквальное значение двоичного файла.

Вывод данных операций над текстовыми файлами осуществляется таким же образом, мы работали с cout:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16

// writing on a text file

#include <iostream>

#include <fstream>

using namespace std;

int main () {

ofstream myfile ("example.txt");

if (myfile.is_open())

{

myfile << "This is a line.\n";

myfile << "This is another line.\n";

myfile.close();

}

else cout << "Unable to open file";

return 0;

}

[file example.txt]

This is a line.

This is another line.

Ввод данных из файла также может быть выполнена таким же образом, что мы сделали с cin:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23

// reading a text file

#include <iostream>

#include <fstream>

#include <string>

using namespace std;

int main () {

string line;

ifstream myfile ("example.txt");

if (myfile.is_open())

{

while ( myfile.good() )

{

getline (myfile,line);

cout << line << endl;

}

myfile.close();

}

else cout << "Unable to open file";

return 0;

}

This is a line.

This is another line.

которая возвращает истину в случае, если поток готов для операций ввода / вывода. Мы создали в то время как цикл, который заканчивается, когда действительно myfile.good () больше не является правдой, которое произойдет либо, если конец файла достигнут, или если некоторые другие ошибки. Этот последний пример читает текстовый файл и выводит его содержимое на экран. Обратите внимание, как мы использовали новую функцию-член, называемый good() которая возвращает истину в случае, если поток готов для операций ввода / вывода. Мы создали в то время как цикл, который заканчивается, когда действительно myfile.good () больше не является правдой, которое произойдет либо, если конец файла достигнут, или если некоторые другие ошибки.