Файлові операції у С++ Максименко Марина Миколаївна вчитель інформатики вищої категорії, вчитель- методист Конотопської гімназії Конотопської міської ради.

Презентация:



Advertisements
Похожие презентации
Типи даних. Змінні в С++. Присвоєння значень змінним Максименко Марина Миколаївна вчитель інформатики вищої категорії, вчитель-методист Конотопської гімназії.
Advertisements

Виконання простих операцій. Математичні операції мови С++. Уведення даних Максименко Марина Миколаївна вчитель інформатики вищої категорії, вчитель-методист.
Текстові файли Приклади використання. Текстові файли призначені для зберігання символів Для опису текстової файлової змінної використовується тип Text.
Основи алгоритмізації та програмування Надання значень величинам. Вказівки присвоєння та введення.
Впорядкування масивів Максименко Марина Миколаївна вчитель інформатики вищої категорії, вчитель- методист Конотопської гімназії Конотопської міської ради.
ІНФОРМАТИКА 10 КЛАС Урок 7. Якщо потрібно форматувати поодинокі слова чи короткі фрази, використовувати який-небудь іменований стиль неможливо, тому,що.
Рядкові величини в С++ Максименко Марина Миколаївна вчитель інформатики вищої категорії, вчитель-методист Конотопської гімназії Конотопської міської ради.
Типи даних мови Visual Basic та їх опис. Опис величин Величина - це об'єкт, який має стале або змінне значення. Основні характеристики величин: ім'я,
8 Практична робота 11 Налагодження готової програми За новою програмою Урок 38.
Урок 6 5 клас. Файли, папки та операції над ними.
Практична робота 3 "Форматування в електронних таблицях. Використання формул" 11 клас Рівень стандарт Урок 10.
Зміні та їх властивості Уведення та виведення даних під час виконання проекту Курило Світлана Володимирівна учитель Балясненської ЗОШ І – ІІІ ступенів.
Коротка О.Б.. Це зрозуміла та точна інструкція (указівка) виконавцю, як йому реалізувати певну послідовність дій, призначених досягнути поставленої мети.
Запити в Access Запити в базі даних Запити використовуються для перегляду, зміни й аналізу даних різними способами. Основні операції з використанням.
Запити Ассess ПЛАН Перехресний запит Доповнення таблиці Вилучення записів Створення нової таблиці.
Формула – це основний інструмент аналізу даних. За допомогою формул можна виконувати математичні дії, порівнювати, обєднувати дані як у межах одного робочого.
Вказівники Вказівник (або покажчик) – особливий тип даних, значенням якого є адреса певного байта оперативної памяті. Значення покажчика - це беззнакове.
Основи алгоритмізації та програмування Вказівка повторення. Цикли.
Введення даних і виведення результатів. Використання присвоєння Нехай змінній а потрібно надати початкове значення 5, змінній b 10, змінній с -2,5, змінній.
ІНФОРМАТИКА. 9 КЛАС Програмне забезпечення комп'ютерних систем Навчальна презентація вчителя Большакової Кристини Сергіївни ЗОШ 9 м. Ізмаїл.
Транксрипт:

Файлові операції у С++ Максименко Марина Миколаївна вчитель інформатики вищої категорії, вчитель- методист Конотопської гімназії Конотопської міської ради Сумської області 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; //числова змінна, рядкова змінна Увага! Якщо не використовувати ознаки, на диску буде створений новий файл із зазначеним ім'ям, або перезаписаний файл із таким же ім'ям, якщо він уже існує

Ознаки ОзнакаПризначення ios::in Відкриває файл для читання. Вміст файлу зберігається ios::out Відкриває файл для записування. Якщо файл не існує, то буде створений ios::app Відкриває файл для дописування. Дані будуть записані у кінець файлу ios::trunk Якщо файл, який відкривають для записування вже існує, то його вміст буде вилучено. ios::nocreate Забороняє створювати файл, який відкривають ios::inoreplace Забороняє перезаписувати існуючий файл

Ознаки (приклади) ofstream flags(text1.dat, ios::app); - можна дописати до кінця вже існуючого файлу потрібну інформацію ofstream flags(text1.dat, ios::noreplace); - якщо файл існує і спробувати щось записати у нього, то жодних дій не відбудеться; якщо ж цю ознаку застосувати до нового файлу, то файл буде створено і дані можна буде записувати ofstream flags(text1.dat, ios::nocreate); - якщо файл вже існує, то він може бути відкритий для записування; якщо ж раніше такого файлу на диску не було, то в кращому випадку у файл нічого не запишеться, а в гіршому – програма зависне.

Приклади Записати у файл три рядки тексту #include #include 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 #include #include int main() {ifstream fin(output.txt); char one[64],two[64],three[64]; fin.getline(one,sizeof(one)); fin.getline(two,sizeof(two)); fin.getline(three,sizeof(three)); fin.close(); cout<<one<<endl; cout<<two<<endl; cout<<three<<endl; getch(); return 0;}

Приклади (продовження) Читати вміст файлу поки не буде досягнутий кінець файлу: #include #include #include 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;} Читати вміст файлу по одному слову за один раз, поки не буде досягнутий кінець файлу: #include #include #include int main() {ifstream fin(output.txt); char text[64]; while (!fin.eof()) { fin>>text; cout<<text<<endl; } fin.close(); getch(); return 0;}

Обробка помилок при виконанні файлових операцій Щоб допомогти програмам стежити за помилками, використовується функція name.fail(). Якщо у процесі файлової операції помилок не було, функція поверне false (0). Однак, якщо трапилася помилка, функція поверне true. Наприклад: #include #include int main() {char line[64]; ifstream fin(output.txt); if(fin.fail()) cout<<error; else { while (!fin.eof() && (!fin.fail())) { fin.getline(line,sizeof(line)); if (!fin.fail()) cout<<line<<endl; } fin.close(); getch(); return 0;}

Завдання 1. У текстовому редакторі створіть файл, й який занесіть прізвища п'яти ваших друзів. Складіть програму, яка б додавала інформацію ще про трьох осіб. Вміст файлу виведіть на екран. 2. У текстовому редакторі створіть файл, у який занесіть координати вершин трикутника. Обчисліть його периметр.

Приклади використання файлових операцій Зчитати масив. Обчислити суму його додатних елементів #include 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]; for (i=0; i<r; i++) // уведення масиву for (j=0; j<s;j++) fin>>a[i][j]; fin.close(); for (i=0; i<r; i++) // виведення масиву { for (j=0; j<s;j++) cout<<a[i][j]<< ; cout<<endl; } int k=0; // обчислення for (i=0; i<r; i++) for (j=0; j<s;j++) if (a[i][j]>0) k++; fout<<k; // виведення результату в файл fout.close(); getch(); return 0;}

Приклади використання файлових операцій Написати програму, яка визначає, чи зустрічається у заданому файлі послідовність символів. Довжина рядку тексту не перевищує 80 символів, текст не містить переносів, послідовність не містить пропусків. #include int main() { const int len=81; char word[len], line[len]; cout >word; ifstream fin(text.txt, ios::nocreate); if (fine.fail()) {cout<<error<<endl; getch(); return 1;} while (!fin.eof()) { fin. getline(line); if (strstr(line,word) { cout<<yes<<endl; getch(); return 0;} } cout<<no<<endl; getch(); return 0;}

Завдання 1. Створити текстовий файл, що складається з одного рядка та містить слова, розділені символом пробілу. Написати програму для підрахунку кількості слів у файлі. 2. Створити програму для записування у текстовий файл додатних цілих чисел, що вказуються користувачем з клавіатури. Критерієм припинення введення має бути введення від'ємного числа. Відкрити створений файл, прочитати з нього числа та знайти їх суму. 3. Кожен рядок текстового файлу складається з однакової кількості символів. У записі рядка використовуються лише два символи – + та *. Написати програму для виведення на екран номера рядка та номера стовпця кожного символу +. Вважати, що нумерація рядків та стовпців починається з нуля.

Література Лєхан С.Ф. Інформатика С++. Спецкурс класи. – Шепетівка; Аспект, Глинський Я.М., Анохін В.Є., Ряжська В.А. С++ і С++ Builder. Навчальний посібник. – Львів: СПД Глинський, Глушаков С.В., Смирнов С.В., Коваль А.В. Практикум по С++. – Харьков: Фолио, Павловская Т.А. С/С++. Программирование на языке высокого уровня. – СПб.: Питер, 2003 Лисенко Т.І. Поглиблене вивчення програмування в школі. – К.:ТОВ Редакція Комп'ютер, 2007.