русс | укр

Мови програмуванняВідео уроки php mysqlПаскальСіАсемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование


Linux Unix Алгоритмічні мови Архітектура мікроконтролерів Введення в розробку розподілених інформаційних систем Дискретна математика Інформаційне обслуговування користувачів Інформація та моделювання в управлінні виробництвом Комп'ютерна графіка Лекції


Послідовний запис до файлу і послідовне читання з файлу


Дата додавання: 2014-04-22; переглядів: 926.


Для запису інформації до файлу використовують операцію, яка є аналогом операції cout <<:

 

fn << блок 1 << блок 2 << … << блок n;

 

Запишемо в файл деяку інформацію:

 

#include <iostream>

#include <fstream>

using namespace std;

int main( ) {

ofstream fn ( "test.txt", ios::out );

if ( !fn ) {

cout << "Error opening file\n";

exit( 1 );

}

fn << "Line 1" << endl << "Line 2";

fn.close();

}

Для читання з файлу використовують операцію, яка є аналогом операції cin >>:

 

fn >> блок 1 >> блок 2 >> … >> блок n;

 

Виведемо на екран зміст файлу, який був створений попередньою програмою:

 

#include <iostream>

#include <fstream>

using namespace std;

int main( ) {

char buf[ 20 ];

ifstream fn ( "test.txt", ios::in );

if ( !fn ) return 1;

while ( ! fn.eof() ) {

//fn >> buf; // Зчитати слово з файлу

fn.getline( buf, sizeof( buf ) );

cout << buf << endl;

}

fn.close();

}

Дані будуть читатися до тих пір, поки не буде досягнуто кінець файлу – в цьому випадку функція fn.eof() поверне нульове значення. Для читання з файлу можна використовувати оператор fn >> buf; який прочитає з файла слово і запише його в масив buf. Слово закінчується першим пробільним символом. Для того, щоб прочитати рядок символів, можна використовувати функцію fn.getline( buf, sizeof( buf ) ); Аргументами функції є адреса буфера, в якому необхідно зберегти прочитаний рядок, і розмір цього буфера.

При збереженні чисел в файлі їх зручно відділяти одне від одного одним чи декількома пробільними символами:

 

#include <iostream>

#include <fstream>

using namespace std;

int main( ) {

ofstream fout ( "test.txt", ios::out );

if ( !fout ) return 1;

for ( int i = 1; i <= 10; i++ )

fout << i << " " << double( i ) / ( i + 1)

<< ( i < 10 ? "\n" : "" );

fout.close();

 

int t;

double d;

ifstream fin ( "test.txt", ios::in );

if ( !fin ) return 1;

while ( ! fin.eof() ) {

fin >> t >> d;

cout << t << "\t" << d <<endl;

}

fin.close();

}

 

Так само можна читати рядки символів. Але необхідно пам’ятати, що операція >> буде повертати одне слово.

 

#include <iostream>

#include <fstream>

using namespace std;

int main( ) {

ofstream fout ( "test.txt", ios::out );

if ( !fout ) return 1;

fout << "One " << 1 << endl;

fout << "Two " << 2;

fout.close();

char c[ 10 ];

int t;

ifstream fin ( "test.txt", ios::in );

if ( !fin ) return 1;

while ( ! fin.eof() ) {

fin >> c >> t;

cout << c << "\t" << t <<endl;

}

fin.close();

}


<== попередня лекція | наступна лекція ==>
Робота з файлами. Звертання до файлів | Файли з довільним доступом


Онлайн система числення Калькулятор онлайн звичайний Науковий калькулятор онлайн