Файлові операції у С++
Завантажити презентаціюПрезентація по слайдам:
Файлові операції у С++ Максименко Марина Миколаївна вчитель інформатики вищої категорії, вчитель-методист Конотопської гімназії Конотопської міської ради Сумської області 2008 р.
Зміст Основні поняття Зчитування даних із файлу Визначення кінця файлу. Закриття файлу Виведення даних у файл Ознаки Приклади Обробка помилок при виконанні файлових операцій Завдання Приклади використання файлових операцій Завдання Література
Основні поняття Файл - це сукупність даних, які розміщені на зовнішніх носіях. Дані у файлах називаються елементами Кількість даних під час опрацювання файлів не зазначають. Файли можуть містить як текстову, так і числову інформацію. Функцції опрацювання файлів описані в бібліотеці fstream.h Для опрацювання файлу його необхідно відкрити, виконати потрібні дії та закрити.
Зчитування даних із файлу Оголошення файлової змінної та відкриття файлу для читання: ifstream f_in(“filename.txt”, ознака1|ознака2|…|ознакаN); f_in – назва файлової змінної filename.txt – зовнішня назва файлу Ознаки слугують для визначення прав доступу до файлу. Ознаки зазначать необов'язково. Введення даних: f_in>>a>>b; //числова змінна, рядкова змінна без пропусків f_in.getline(str); //рядкова змінна
Визначення кінця файлу. Закриття файлу Для успішного читання довільних файлів потрібно знати, коли зустрінеться кінець файлу: while (!f_in.eof()) {//оператори} Функція name.eof() повертає нульове значення, якщо досягнуто кінця файлу. Коли для продовження роботи файл більше не потрібен, його слід закрити: f_in.close();
Виведення даних у файл Оголошення файлової змінної та відкриття файлу для запису: ofstream f_out(“filename.txt”, ознака1|ознака2|…|ознакаN); f_out – назва файлової змінної filename.txt – зовнішня назва файлу Ознаки слугують для визначення прав доступу до файлу. Ознаки зазначать необов'язково. Виведення даних: f_out>>a>>b; //числова змінна, рядкова змінна Увага! Якщо не використовувати ознаки, на диску буде створений новий файл із зазначеним ім'ям, або перезаписаний файл із таким же ім'ям, якщо він уже існує
Ознаки (приклади) ofstream flags(“text1.dat”, ios::app); - можна дописати до кінця вже існуючого файлу потрібну інформацію ofstream flags(“text1.dat”, ios::noreplace); - якщо файл існує і спробувати щось записати у нього, то жодних дій не відбудеться; якщо ж цю ознаку застосувати до нового файлу, то файл буде створено і дані можна буде записувати ofstream flags(“text1.dat”, ios::nocreate); - якщо файл вже існує, то він може бути відкритий для записування; якщо ж раніше такого файлу на диску не було, то в кращому випадку у файл нічого не запишеться, а в гіршому – програма зависне.
Приклади Записати у файл три рядки тексту #include<iostrem.h> #include<fstream.h> int main() {ofstream fout(“output.txt”); fout<<”Prog na C++ “<<”klas ‘309’”<< endl; fout<<”konotop”<<endl; fout<<”2008 year”<<endl; fout.close(); return 0;}
Приклади (продовження) Читати вміст файлу поки не буде досягнутий кінець файлу: #include<iostrem.h> #include<conio.h> #include<fstream.h> int main() {ifstream fin(“output.txt”); char line[64]; while (!fin.eof()) { fin.getline(line,sizeof(line)); cout<<line<<endl; } fin.close(); getch(); return 0;}
Обробка помилок при виконанні файлових операцій Щоб допомогти програмам стежити за помилками, використовується функція name.fail(). Якщо у процесі файлової операції помилок не було, функція поверне false (0). Однак, якщо трапилася помилка, функція поверне true. Наприклад:
Завдання У текстовому редакторі створіть файл, й який занесіть прізвища п'яти ваших друзів. Складіть програму, яка б додавала інформацію ще про трьох осіб. Вміст файлу виведіть на екран. У текстовому редакторі створіть файл, у який занесіть координати вершин трикутника. Обчисліть його периметр.
Приклади використання файлових операцій Зчитати масив. Обчислити суму його додатних елементів #include<iostrem.h> #include<conio.h> #include<fstream.h> #include<iomanip.h> int main() { ifstream fin(“input.txt”); if (fin.fail()) {cout<<“error”; getch(); return 1;} else { ofstream fout(“output.txt”, ios::out); int r, s; fin>>r>>s; // кількість рядків та стовпчиків int i, j; // виділення пам'яті під масив int **a=new int *[r]; for (i=0; i<r; i++) a[i]= new int [s];
Приклади використання файлових операцій Написати програму, яка визначає, чи зустрічається у заданому файлі послідовність символів. Довжина рядку тексту не перевищує 80 символів, текст не містить переносів, послідовність не містить пропусків. #include<fstream.h> #include<string.h> #include<iostream.h> #include<conio.h> int main() { const int len=81; char word[len], line[len]; cout<<“slovo ?”; cin>>word;
Завдання Створити текстовий файл, що складається з одного рядка та містить слова, розділені символом пробілу. Написати програму для підрахунку кількості слів у файлі. Створити програму для записування у текстовий файл додатних цілих чисел, що вказуються користувачем з клавіатури. Критерієм припинення введення має бути введення від'ємного числа. Відкрити створений файл, прочитати з нього числа та знайти їх суму. Кожен рядок текстового файлу складається з однакової кількості символів. У записі рядка використовуються лише два символи – “+” та “*”. Написати програму для виведення на екран номера рядка та номера стовпця кожного символу “+”. Вважати, що нумерація рядків та стовпців починається з нуля.
Література Лєхан С.Ф. Інформатика С++. Спецкурс. 10-12 класи. – Шепетівка; Аспект, 2007. Глинський Я.М., Анохін В.Є., Ряжська В.А. С++ і С++ Builder. Навчальний посібник. – Львів: СПД Глинський, 2006. Глушаков С.В., Смирнов С.В., Коваль А.В. Практикум по С++. – Харьков: Фолио, 2006. Павловская Т.А. С/С++. Программирование на языке высокого уровня. – СПб.: Питер, 2003 Лисенко Т.І. Поглиблене вивчення програмування в школі. – К.:ТОВ Редакція “Комп'ютер”, 2007.
Схожі презентації
Категорії