Оцените презентацию от 1 до 5 баллов!
Тип файла:
ppt / pptx (powerpoint)
Всего слайдов:
18 слайдов
Для класса:
1,2,3,4,5,6,7,8,9,10,11
Размер файла:
155.50 kB
Просмотров:
49
Скачиваний:
0
Автор:
неизвестен
Слайды и текст к этой презентации:
№1 слайд![Функц потокового введення](/documents_5/b8596091ccfcecc1be990e9d7275aad4/img0.jpg)
Содержание слайда: Функції потокового введення/виведення даних
Виділяють чотири групи функцій високорівневого
обміну відповідно до формату даних, що передаються
за одну операцію:
посимвольного введення/виведення;
рядкового введення/виведення;
блокового введення/виведення;
форматного введення/виведення.
Всі операції виконуються , починаючи з поточної позиції
файла, яку зберігає спеціальний покажчик. У процесі
введення/виведення покажчик автоматично зсувається
на відповідну кількість байтів.
№2 слайд![](/documents_5/b8596091ccfcecc1be990e9d7275aad4/img1.jpg)
№3 слайд![](/documents_5/b8596091ccfcecc1be990e9d7275aad4/img2.jpg)
№4 слайд![Запис одного символу symb у](/documents_5/b8596091ccfcecc1be990e9d7275aad4/img3.jpg)
Содержание слайда: Запис одного символу symb у потік виведення fp
виконують функції
int fputc (int symb, FILE *fp);
int putc(int symb, FILE *fp); - макрос Borland C
За умови успішного виконання функції повертають
код записаного символа, у разі помилки звертання
до файлу – константу EOF.
№5 слайд![Файловий обм н рядками символ](/documents_5/b8596091ccfcecc1be990e9d7275aad4/img4.jpg)
Содержание слайда: Файловий обмін рядками символів
Зчитування рядка символів з потоку
char *fgets (char *str, int max, FILE *fp);
str – масив символів, в який буде записано введений рядок; max – максимальна кількість символів (з нуль-символом включно), яку може містити зчитаний рядок; fp – потік, з якого вводяться рядки.
З потоку у ділянку оперативної пам’яті ( str ) зчитується
послідовність символів до символа нового рядка чи
символа кінця файла, але не більше, ніж max-1 символів.
У разі успішного виконання функція повертає адресу
першого символа введеного рядка ( str ), інакше – NULL.
Розмір масиву str має бути не меншим за max.
№6 слайд![Запис заданого рядка в пот к](/documents_5/b8596091ccfcecc1be990e9d7275aad4/img5.jpg)
Содержание слайда: Запис заданого рядка в потік виведення
int fputs (char *str, FILE *fp);
Повертає ненульове значення за умови успішного
виконання та EOF у разі невдачі. Функція послідовно
передає у потік символи рядка str до `\0` .
Додатково: при створенні потоку функцією fopen()
в параметрі fmode можна задати текстовий t чи
бінарний b режим відкриття потоку. За замовчуванням
встановлюється текстовий режим.
№7 слайд![Р зниця м ж двома режимами в](/documents_5/b8596091ccfcecc1be990e9d7275aad4/img6.jpg)
Содержание слайда: Різниця між двома режимами – в інтерпретації коду
клавіші Enter. В текстовому режимі цей код в процесі
читання замінюється на символом нового рядка ‘ \n’,
а в разі запису навпаки – кожен символ ‘ \n’
заноситься у потік як комбінація “\r\n”. В бінарному
режимі такі заміни не виконуються.
Форматне введення/виведення даних
Файлове введення даних згідно зі заданим списком
форматних спеціфікацій здійснює функція
int fscanf ( FILE *fp, char *format, … );
Функція повертає кількість успішно введених даних.
№8 слайд![Параметр fp вказу на](/documents_5/b8596091ccfcecc1be990e9d7275aad4/img7.jpg)
Содержание слайда: Параметр fp вказує на текстовий потік введення,
обов’язковий параметр format – задає символьний
рядок з послідовністю специфікацій форматних
перетворень. Наступні параметри задають адреси
змінних, куди будуть записуватись введені значення
(їх кількість і типи визначаються специфікаціями) . Правила форматних перетворень даних такі ж, як і
для функції scanf ().
Помилки в процесі введення можна конкретизувати
через функцію feof() – повертає нуль, якщо не
встановлено ознаку кінця файлу, інакше повертає
ненульове значення.
№9 слайд![Приклад неправильно орган зац](/documents_5/b8596091ccfcecc1be990e9d7275aad4/img8.jpg)
Содержание слайда: Приклад неправильної організації форматного
введення даних
FILE *fin;
int numb;
……..
while ( !feof ( fin)) {
fscanf ( fin, “%d”, &numb);
printf (“%3d”, numb);
}
Якщо вміст файла є таким: 1_2_3_4_5
де символ підкреслення позначає роздільник, то на
екран буде виведено: 1 2 3 4 5
№10 слайд![Якщо ж у файл в к нц буде](/documents_5/b8596091ccfcecc1be990e9d7275aad4/img9.jpg)
Содержание слайда: Якщо ж у файлі в кінці буде записано роздільник:
1_2_3_4_5_
то результат читання та виведення буде іншим:
1 2 3 4 5 5
Повторення зумовлене тим, що після введення числа 5
не встановлюється ознака кінця файла (є кінцевий
незчитаний роздільний символ). Наступний виклик
fscanf() зчитує цей символ, але не знаходить більше
чисел, тому фіксується кінець файла, а значення numb
не змінюється. Щоб зробити форматне введення
незалежним від прикінцевих символів файла, цикл
читання слід записати так:
№11 слайд![.. while fscanf fin, d , amp](/documents_5/b8596091ccfcecc1be990e9d7275aad4/img10.jpg)
Содержание слайда: …..
while ( fscanf ( fin, “%d”, &numb)==1)
printf ( “%3d”, numb);
if ( feof (fin))
puts (“ Зчитано всі числа файла ”);
else
puts (“ Помилка в числових даних “);
…..
Для читання символьних даних використовують
спеціфікатор “%s”, при цьому зчитується послідовність
символів до першого роздільника.
№12 слайд![В раз звертання до файла](/documents_5/b8596091ccfcecc1be990e9d7275aad4/img11.jpg)
Содержание слайда: В разі звертання до файла fscanf (f, “%s”, str);
у рядок str буде зчитане тільки одне поточне слово.
Необхідно забезпечити щоб обсяг ділянки str був
достатнім для запису найдовшого слова файла.
Форматне виведення в файл здійснюється функцією
int fprintf (FILE *fp, char *format, … );
Приклад:
void vyvod (FILE *f)
{ int a,b,c,k;
scanf (f, ”%d%d%d”, &a, &b, &c);
fprintf (f, “a=%d, b=%d, c=%d);
}
№13 слайд![Приклади роботи з текстовими](/documents_5/b8596091ccfcecc1be990e9d7275aad4/img12.jpg)
Содержание слайда: Приклади роботи з текстовими файлами
Відкриття текстового файлу test.txt може мати вигляд
#include<stdio.h>
void main()
{ …
FILE *f;
if (( f=fopen("test.txt", "rt"))==NULL)
{
printf("Файл не вдалося відкрити.\n");
return;
} …
fclose(f);
…
}
№14 слайд![Поток f зв язу ться з файлом](/documents_5/b8596091ccfcecc1be990e9d7275aad4/img13.jpg)
Содержание слайда: Поток f зв'язується з файлом "test.txt", який
відкривається як текстовий тільки для читання. Після
закінчення роботи з файлом, його необхідно закрити за
допомогою функції fclose(). З текстового файла можна
читати інформацію по рядках, по символах або за
форматом. Приклад зчитування рядків:
#include<stdio.h>
#include<string.h>
void main()
{
char s[80];
FILE *f;
if ((f=fopen("1.cpp", "rt"))==NULL)
№15 слайд![printf quot There are an](/documents_5/b8596091ccfcecc1be990e9d7275aad4/img14.jpg)
Содержание слайда: {
printf ("There are an error\n");
return;
}
do
{
fgets (s, 80, f);
printf("%s",s);
} while ( !feof(f) );
fclose (f);
}
Функція feof() перевіряє символ завершення файла.
Якщо такий символ прочитаний, то feof() повертає
ненульове значення і цикл завершується.
№16 слайд![Приклад форматного обм ну](/documents_5/b8596091ccfcecc1be990e9d7275aad4/img15.jpg)
Содержание слайда: Приклад форматного обміну:
#include<stdio.h>
void main()
{ FILE *fi;
int age;
fi=fopen("age.txt","r"); /* відкриття для читання */
fscanf(fi,"%d",&age); /*читання числового значення */
fclose(fi); /* закриття файла */
fi=fopen("data.txt", "a"); /* відкриття файла для
додавання інформації в кінець */
fprintf (fi, "Age==%d.\n",age); /* запис рядка в файл */
fclose(fi); /* закриття файла */
}
№17 слайд![Створення файла з](/documents_5/b8596091ccfcecc1be990e9d7275aad4/img16.jpg)
Содержание слайда: Створення файла з результатами табулювання функції
# include <stdio.h>
double fun (double);
int main(void)
{
FILE *fout;
double x0, xk, x, dx;
printf (“\n Межі та крок табулювання: “);
scanf (“%1f%1f%1f”, &x0, &xk, &dx);
fout = fopen( “fun_tab.res”, “wt”);
for (x=x0; x<xk; x+=dx)
№18 слайд![fprintf fout, . f . f n , x,](/documents_5/b8596091ccfcecc1be990e9d7275aad4/img17.jpg)
Содержание слайда: fprintf (fout, “%10.21f%15.31f\n”, x, fun(x) );
fclose (fout);
printf ( “\n Файл результатів створеною \n”);
return 0;
}
double fun (double x)
{
……… /*тіло функції*/
}