Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Запись в файл(лекция).doc
Скачиваний:
6
Добавлен:
11.02.2016
Размер:
532.99 Кб
Скачать

Зчитування та запис текстових файлів

Операція запису у потік має вигляд: Потокова_зміна<<змінна;

Операція зчитування у потік має вигляд: Потокова_зміна>>змінна;

Приклад запису у файл чисел:

#include <iostream>

#include <fstream>

using namespace std;

int main()

{

int i, n;

double a;

ofstream f;

//оголошуємо потокову зміну

f.open("c:\\text.txt", ios::out);

//f.open("c:\\text.txt");

//ще один з варіантів

cout<<"n=";

cin>>n;

//повідомлення на екран

//задаємо кількість чисел

for (i=0; i<n; i++)

{

printf("a[%d]=",1+i);

cin>>a;

f<<a<<"\t";

}

f.close();

return 0;

}

//повідомлення на екран

//зчитування значення в змінну а

//запис змінної а у потік(файл) та запис знаку табуляції

Результат запису:

Приклад зчитування перших 5 чисел з файлу.

#include <iostream>

#include <fstream>

using namespace std;

int main()

{

int n=5;

float a;

fstream F;

F.open("c:\\text.txt");

if (F)

{

for (i=0; i<n; i++)

{

F>>a;

printf("a[%d] = %2.1f\n",1+i,a);

}

F.close();

}

else

cout<<"Файл не відкрито "<<endl;

return 0;

}

Результат:

Зчитування та запис двійкових (бінарних) файлів Функції get() та put()

istream &get(char &ch);

ostream & put(char ch);

Функція get() зчитує один символ з потоку та записує його значе­ння в ch. Вона повертає посилання на потік. Функція put() записує ch у потік та повертає посилання на цей потік.

Функції використовують для текстових та бінарних файлів. При роботі з бінарними файлами необхідно відкрити їх в режимі ios::binary.

Приклад здійснює зчитування файла в бінарному ркежимі будь-який файл.

#include <iostream>

#include <fstream>

using namespace std;

int main()

{

char sf[40];

char ch;

fstream F;

//повязуємо змінну F з потоком для режиму зчитування

printf("Введіть ім_я файлу: ");

gets(sf);

F.open(sf, ios::in | ios::binary);

//відкриття файлу для зчитування в бінарному режимі

if (F)

{

//варіант зчитування №1

/* while (F)

{

F.get (ch);

cout << ch;

}

*/

// цикл зчитує посимвольно відкритий файл

//варіант зчитування №2

while (F.get(ch))

cout << ch;

F.close();

}

else

cout<<"Помилка відкриття файлу "<<endl;

return 0;

}

Приклад ілюструє запис у файл по одному символу введеного символьного рядка.

#include <string.h>

#include <iostream>

#include <fstream>

using namespace std;

int main()

{

int i=0;

char sf[80], str[80];

char ch;

ofstream F;

//повязуємо змінну F з потоком для режиму запису

printf("Введіть ім_я файлу: ");

gets(sf);

F.open(sf, ios::out | ios::binary);

// відкриваємо файл для запису в бінарному режимі

if (F)

{

printf("Введіть символьний рядок: ");

gets(str);

for(int i=0;i < strlen(str);i++)

F.put(str[i]);

//посимвольно записуємо введений рядок

F.close();

}

else

cout<<"Виникла помилка "<<endl;

return 0;

}

Результат виконання:

Введіть ім_я файлу: c:\dat.txt

Введіть символьний рядок: I love C++.

Результат запису у файл:

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]