Пример работы с файлом

 

bool Запись_данных_в_текстовый_файл (char * FileName)

{

ofstream File;// Создали поток вывода для записи данных в файл

File.open ( FileName );// Открыли файл

if ( ! File.is_open () )// Проверили удалось ли открыть файл

{

cout << "Открыть файл не удалось! \n";

return 0;// Файл не открыт

}

for (int I = 1; I <= 10; ++ I)// Записываем 10 строк в файл

File << "Строка " << I << endl;

File.close ();// Закрываем файл

Return 1;

}

 

bool Чтение_данных_из_текстового_файла (char * FileName)

{

ifstream File;// Создали поток ввода для чтения данных из файла

File.open ( FileName );// Открыли файл

if ( !File.is_open () )// Проверили удалось ли открыть файл

{

cout << “Открыть файл не удалось! \n” ;

return 0;// Файл не открыт

}

char S[100];

while ( ! File.eof () )// Читаем все строки из файла и выводим их на экран

{

File.getline ( S, 100 );

cout << S << endl;

}

File.close ();// Закрываем файл

Return 1;

}

 

Int main ()

{

setlocale (0, "");

if ( Запись_данных_в_текстовый_файл ( "E:\\test.txt" ) )

Чтение_данных_из_текстового_файла( "E:\\test.txt" );

system("pause");

Return 0;

}

 

Работа с файлами

Создание потока, открытие и закрытие файла

 

Либо последовательность из двух инструкций:

 

ofstream File;- создали поток

File.open ( "E:\\test.txt" ); -связали поток с файлом (открыли файл)

 

Либо так:

 

ofstream File ( "E:\\test.txt" ); -создали поток и открыли файл

 

После открытия файла необходимо обязательно проверить открылся ли файл.

Если файл открыть не удалось, то переменная потока (File) принимает значение false, если файл открыт – true. Следовательно, проверку успешного открытия файла можно выполнит так:

 

if ( ! File)

// Ошибка

 

Еще один способ – использовать функцию потока is_open (), которая также возвращает логическое значение в зависимости от результата операции открытия файла:

 

if ( ! File.is_open () )

// Ошибка

 

Файл закрывается с помощью функции потока close ():

 

File.close ();

Подробнее об открытии файла. Каждый поток использует свой вариант функции open. Их прототипы выглядят так:

 

void ifstream::open ( const char * FileName,

ios::openmode Mode = ios::in );

void ofstream::open ( const char * FileName,

ios::openmode Mode = ios::out | ios::trunc );

void fstream::open ( const char * FileName,

ios::openmode Mode = ios::in | ios::out );

 

Первый параметр определяет имя открываемого файла (представляет собой массив символов).

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

· ios::app – при открытии файла на запись (поток ofstream) обеспечивает добавление всех выводимых в файл данных в конец файла;

· ios::ate –обеспечивает начало поиска данных в файле начиная с конца файла;

· ios::in –файл открывается для чтения из него данных;

· ios::out –файл открывается для записи данных в файл;

· ios::binary –открытие файла в двоичном режиме (по умолчанию все файлы открываются в текстовом режиме);

· ios::trunc –содержимое открываемого файла уничтожается (его длина становится равной 0).

Эти флаги можно комбинировать с помощью побитовой операции ИЛИ (|).

Если файл открывается без использования функции open, эти флаги тоже можно использовать:

fstream File ( "E:\\test.txt", ios :: out | ios :: app );- файл открывается на вывод с добавлением записываемых данных в конец файла.

 








Дата добавления: 2019-02-07; просмотров: 316;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.006 сек.