Пример работы с файлом
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; просмотров: 309;