КАТЕГОРИИ:
АстрономияБиологияГеографияДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРиторикаСоциологияСпортСтроительствоТехнологияФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника
|
Закриття файлу.1) int fclose (FILE* stream); Функція закриває потік stream, при цьому записується на диск буфер, пов'язаний з потоком stream, якщо він був відкритий для виведення. Ця функція повертає нульове значення, якщо операція пройшла успішно, інакше функція повертає EOF. Якщо файл не закритий, то при нормальному закінченні програми він закривається автоматично. 2) int fcloseall (void); Функція закриває всі відкриті потоки, окрім стандартних: stdin, stdout, stderr, stdaux, stdprn. Ця функція повертає нульове значення, якщо операція пройшла успішно, інакше функція повертає EOF. Розглянемо приклад програми роботи з файлами. Записати масив у файл ot.txt, прочитати його і вивести на екран. Цей приклад є аналогом прикладу роботи з файлами, де було використано потік fstream. У нашому випадку використовується структура FILE. Зробимо це двома способами: з використанням текстових та бінарних файлів.
Приклад 1. Запис та читання масиву, використовуючи текстовий файл.
#include <iostream> using namespace std;
void main() { int i; int mas[10] = {1,20,300,4,50,600,7,80,900,10}; int vix[10];
FILE* file;
file = fopen("ot.txt", "w+"); for (i = 0; i < 10; i++) fprintf(file,"%d ",mas[i]);
fseek(file,0L, SEEK_SET);
for (i = 0; i < 10; i++) { fscanf(file,"%d ",&vix[i]); cout << vix[i] << " "; } fclose(file); }
Приклад 2. Запис та читання масиву, використовуючи бінарний файл.
#include <iostream> using namespace std;
void main() { int i; int mas[10] = {1,20,300,4,50,600,7,80,900,10}; int vix[10];
FILE* file;
file = fopen("ot.txt", "w+");
fwrite(mas,10,sizeof(mas[0]),file); fseek(file,0L, SEEK_SET); fread(vix,10,sizeof(vix[0]),file);
for (i = 0; i < 10; i++) cout << vix[i] << " ";
fclose(file); }
Контрольні питання
1. Що таке файл? 2. Які типи файлів ви знаєте? 3. Наведіть функції відкриття та закриття файлів потоку fstream. 4. Перелічите можливі режими доступу до файлів потоку fstream. 5. Що таке довільний доступ у файлах? 6. Опишіть функцію переведення вказівки файлу в довільне місце. Наведіть приклад. 7. Напишіть програму копіювання файлів. 8. Опишіть додаткові функції роботи з файлами – read та write. 9. Наведіть приклади роботи з файлами. 10. Наведіть структуру FILE. 11. Наведіть функції потокового введення даних з використанням структури FILE. 12. Наведіть функції потокового виведення даних з використанням структури FILE.
Завдання
У даній роботі необхідно зробити програму роботи з одновимірними масивами. Бажано використовувати динамічні масиви (виділення пам’яті за допомогою оператора new). Введення/виведення даних організовувати за допомогою файлів даних, використовуючи потоки fstream або FILE.
|