Лекція 6.3: Стандартні функції для роботи з текстовими рядками.
Контрольні питання
Функція перейменування
Функція видалення файлів
Функції керування файлами
Під керуванням файлами слід розуміти операції над файлами в цілому, без читання або запису даних, тобто видалення та копіювання.
Для видалення файлів викликається стандартна бібліотечна функція remove().
Її прототип описаний в файлі Stdio.h та виглядає наступним чином.
Int remove (const char *filename);
Filename – вказівник на імя файлу, який треба знищити. Причому усей файл на повинен бути відкритим в момент видалення.
Якщо файл існує, операційна система його видаляє, а функція повертає 0. Якщо файла не існувало, він був доступний лише для читання та в разі інших помилок, функція поверне – 1.
Треба пам’ятати, що видалений файл відновити неможливо.
#include<stdio.h>
Int main (void)
{
Char filename[&0];
Puts(“ведіть ім’я файла, подп.видаленню”);
Gets(filename);
If(remove(filename)==0)
Printf(“файл %s був видалений”,filename);
Else printf(“виникла помилка”)
Return(0);
}
Для зміни імені файлу існуючого на диску, слугує функція rename()
Int rename (const char *oldname, const char *newname );
Oldname та newname – відповідно, існуюче та нове ім’я файлу. Найголовніша вимога – обидва імені повинні посилатися на 1 логічний диск ПК. За допомогою йього методу не можна перемістити файл з одного диску на інший.
Функція повертає 0 повертає у разі успіху, та 1 в разі помилки.
Помилки:
- Файлу з oldname немає;
- Файл з newname вже є;
- Спроба переміщується.
#include<stdio.h>
Int main (void)
{
Char oldname [80] Char newname [80];
Printf(“введ.текущ. имя файла:\n”);
Gets(oldname);
Printf(“введ.новое имя файла:\n”);
Gets(newname);
If(rename(oldname, newname)==0)
Printf(“ісп”);
Else (“error”)
Return(0);
}
1. Дайте визначення файлу.
2. Які операції з файлами дозволяє зробити файлова система?
3. Яку назву має функція відкриття файлів?
4. В якій бібліотеці вона міститься?
5. Що повертає функція відкриття файлів? Як в подальшому використовується це величина?
6. Назвіть аргументи функції та поясніть їх призначення.
7. Які режими відкриття файлу існують?
8. В якому випадку функція відкриття файлів може повернути NULL?
9. Як можна розуміти вираз «функції керування файлами»? в чому полягає це керування?
Література
Б. Керниган, Д. Ритчи. Язык программирования С. Пер. с англ. – М.: издательский дом «Вильямс», 2003 – 234 с.
Б. Джонс, П. Эйткен. Освой самостоятельно С. Пер. с англ. – М.: издательский дом «Вильямс», 2005 – 800 с.
Э. Кёниг, Б. Му. Эффективное программирование на С++. Серия С++ In Depth. Пер. с англ. – М.: издательский дом «Вильямс», 2002 – 384 с.
Мета: ознайомити студентів зі стандартними засобами обробки рядків та їх фрагментів. Розглянути менханізми роботи функцій визначення довжини рядка, копіювання рядків, зчеплення послідовностей символів, а також принципи пошуку в рядках.
План:
1. Функція визначення довжини рядка.
2. Копіювання рядків.
3. Конкатенація.
4. Функції пошуку в рядках.
Текстові дані – важливий компонент практично любої програми, не залежно від мови її написання. Для їх зберігання та обробки в мові С призначена рядки символів. Варто зазначити, що окремого типу даних для зберігання послідовностей символів нема, з цією метою використовуються масиви значень типу char.
Послідовності символів є дещо специфічними даними, тому для їх зчитування та відображення існує окрема група функцій – gets() для зчитування та puts() для відображення.
А окрім ціого існує широкий спектр функцій для інших маніпуляцій з текстовими даними. Їх надає бібліотека <string.h>