Скачать презентацию Мова С Файли в C Файли в Скачать презентацию Мова С Файли в C Файли в

Tema_8_Cpp.pptx

  • Количество слайдов: 11

Мова С++ Файли в C++ Мова С++ Файли в C++

Файли в C++ Файлом називають спосіб зберігання інформації на фізичному пристрої. Файл - це Файли в C++ Файлом називають спосіб зберігання інформації на фізичному пристрої. Файл - це поняття, яке застосовується до всього - від файлу на диску до терміналу. У C ++ відсутні оператори для роботи з файлами. Всі необхідні дії виконуються за допомогою функцій, включених в стандартну бібліотеку. Вони дозволяють працювати з різними пристроями, такими, як диски, принтер, комунікаційні канали і т. д. Ці пристрої сильно відрізняються один від одного. Однак файлова система перетворює їх в єдиний абстрактний логічний пристрій, що називають потоком. Текстовий потік - це послідовність символів. При передачі символів з потоку на екран, частина з них не виводиться (наприклад, символ повернення каретки, переведення рядка). Двійковий потік - це послідовність байтів, які однозначно відповідають тому, що знаходиться на зовнішньому пристрої.

Організація роботи з файлами засобами С++ Оголошення файлу: Приклад : FILE *ідентифікатор; FILE *f; Організація роботи з файлами засобами С++ Оголошення файлу: Приклад : FILE *ідентифікатор; FILE *f; Відкривання файлу: fopen(имя фізичного файлу, режим доступу); Режим доступу - рядок, що вказує режим відкриття файлу і його тип ( бінарний (b); або текстовий (t)) Приклади відкривання файлу FILE * fp; fp = fopen ("test", "w"); FILE * fp; if ((fp = fopen ("test", "w "))== NULL) { printf ("Помилка при відкритті файлу. n"); exit(1); }

Допустимі значення режимів Режим Що означает r Відкрити текстовий файл для читання w Створити Допустимі значення режимів Режим Що означает r Відкрити текстовий файл для читання w Створити текстовий файл для запису a Додати в кінець текстового файлу. Якщо файл не існує, то він просто буде створений. Всі нові дані, які записуються в нього, будуть додаватися в кінець файлу. rb Відкрити двійковий файл для читання wb Створити двійковий файл для запису ab Додати в конец двійкового файла r+ w+ Відкрити текстовий файл читання/запису. Вміст залишиться недоторканим. Якщо файл не існує, то створений не буде. Створити текстовий файл для читання /запису. Якщо файл не існує, то він буде створений. Якщо файл вже існує, то відкриття призведе до втрати його вмісту, а в режимі r+ він залишиться недоторканим a+ Добавить в конец текстового файла або створити текстовий файл для читання/запису r+b Відкрити двійковий файл для читання /запису w+b Створити двійковий файл для читання /запису a+b Додати в кінець двійкового файлу або створити двійковий файл для читання /запису

Часто використовувані функції файлової системи С (<stdio. h>). Функція Що робить fopen() Відкриває файл Часто використовувані функції файлової системи С (). Функція Що робить fopen() Відкриває файл fclose() Закриває файл fputc() Записує символ у файл fgetc() Читаетє символ з файлу fgets() Читає рядок з файлу fputs() Записує рядок у файл fseek() Встановлює покажчик поточної позиції на певний байт файлу ftell() Повертає поточне значення покажчина у файлі fprintf() Для файлу те саме, що printf() для консолі fscanf() Для файлу те саме, що scanf() для консолі feof() Повертає значення true (істина), якщо досягнуто кінець файлу ferror() Повертає значення true, якщо виникла помилка rewind() Встановлює покажчик поточної позиції на початок файлу remove() Знищуєт файл fflush() Дозапис потоку у файл

Закриття файлу fclose (вказівник_на_файл); відмова при виконанні fclose() відбувається тільки тоді, коли файл був Закриття файлу fclose (вказівник_на_файл); відмова при виконанні fclose() відбувається тільки тоді, коли файл був передчасно видалений (стертий) з дисковода або на диску не залишилося вільного місця Запис символу: putc() і fputc() int putc (cписок_виводу, вказівник_на_файл); int fputc (cписок_виводу, вказівник_на_файл); Читання символу: getc() і fgetc() int getc (cписок_вводу, вказівник_на_файл); int fgetc (cписок_вводу, вказівник_на_файл);

Використання функцій fpust() та fgets() #include <cstdlib> #include <iostream> using namespace std; int main() Використання функцій fpust() та fgets() #include #include using namespace std; int main() { char str_file[]="Rjadok dlja file"; FILE* fp = fopen("my_file. txt", "w"); if(fp != NULL) fputs(str_file, fp); else printf("Nе mozlyvo vidkryty file na zapys. n"); fclose(fp); fp = fopen("my_file. txt", "r"); if(fp != NULL) { fgets(str_file, sizeof(str_file), fp); puts(str_file); } fclose(fp); system("PAUSE"); return EXIT_SUCCESS; }

#include <iostream> #include <cstdio> int main() { FILE * ptr. File = fopen( #include #include int main() { FILE * ptr. File = fopen("log. txt", "a"); char sentence[256]; std: : cout << " Vvelsnm rjadok: "; fgets(sentence, 255, stdin); // записати рядок з стандартного потоку вводу в символьний масив fputs(sentence, ptr. File); // додати рядок у файл fclose (ptr. File); return 0; }

Запис інформації у текстовий файл #include <cstdlib> #include <iostream> using namespace std; int main() Запис інформації у текстовий файл #include #include using namespace std; int main() { char str_file[]="rjadok"; FILE* fp = fopen("my_file. txt", "w"); if(fp != NULL) { printf("zapys inform…n"); for(int i=0; i < strlen(str_file); i++) putc(str_file[i], fp); } else printf("nemaje file. n"); fclose(fp); system("PAUSE"); return EXIT_SUCCESS; }

Читання інформації з файлу #include <cstdlib> #include <iostream> using namespace std; int main() { Читання інформації з файлу #include #include using namespace std; int main() { char str_file[100]; FILE* fp = fopen("my_file. txt", "r"); if(fp != NULL) { int i=0; char ch; while((ch = getc(fp)) != EOF) str_file[i++]=ch; str_file[i] = ''; puts(str_file); } else printf("ne mozlyvo vidkryty file dlja chytanja. n"); fclose(fp); system("PAUSE"); return EXIT_SUCCESS; }

Приклад використання feof() // #include <cstdio> #include <iostream> int main() { FILE * ptr. Приклад використання feof() // #include #include int main() { FILE * ptr. File = fopen("file. txt", "rb"); long ctr = 0; // лічильник символів if (ptr. File == NULL) perror(“Pomylka vidkryvanja File"); else { while ( !feof(ptr. File) ) // поки не кінець файлу { fgetc(ptr. File); // прочитати символ з файлу ctr++; } fclose (ptr. File); // закрити файл std: : cout << “Zagal_kilk_bajtivв: " << (ctr - 1); } return 0; }