Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Metodichka_OT-1.doc
Скачиваний:
14
Добавлен:
17.03.2016
Размер:
1.15 Mб
Скачать

Int fgetc(вказівник_на_файл);

Int fputc(вказівник_на_файл);

Функція fgetc повертає наступний символ із файла, на який вказує відповідний вказівник, або EOF в разі помилки. Функція fputs записує символ у файл, на який вказує відповідний вказівник, та повертає записаний символ, або EOF у випадку помилки.

Для введення-виведення рядків до файлу слугують функції fgets та fputs, які мають синтаксис, аналогічний fgetc, fputc.

1.4. Для введення-виведення даних до бінарних файлів застосовуються функції fwrite та fread відповідно. Вони мають наступний формат:

Int fread (вказівник_на_масив, розмір_об’єкта, кількість_об’єктів , вказівник_на_файл);

Функція забезпечує зчитування об’єктів у масив, на який вказує вказівник_на_масив, кількість об’єктів визначається як кількість_об’єктів, розміром розмір_об’єкта із файла, на який вказує вказівник_на_файл. Функція повертає кількість успішно записаних об’єктів.

Int fwrite(вказівник_на_масив, розмір_об’єкта, кількіст_об’єктів , вказівник_на_файл);

Функція забезпечує запис об’єктів із масиву, на який вказує вказівник_на_масив, кількість об’єктів визначається як кількість_об’єктів, розміром розмір_об’єкта у файл, на який вказує вказівник_на_файл. Функція повертає кількість успішно записаних об’єктів.

1.5. Часто при роботі з файлами корисно використовувати по елементний доступ до файлу. Для цього застосовується функція fseek, що має формат:

Int fseek(вказівник_файла, зміщення, поч. Значення);

Функція встановлює позицію із зміщенням відносно поч. значення у файлі, який визначається вказівником файла. Початкове значення може приймати наступні значення:

SEEK_SET – зміщення відносно початку файла;

SEEK_CUR – зміщення відносно поточного положення;

SEEK_END – зміщення відносно кінця файла;

Функція ftell повертає поточну позицію у файлі, та має наступний формат:

long ftell(вказівник_на_файл);

Приклад 2. Продемонструвати роботу із бінарними файлами.

#include <stdio.h>

#include <conio.h>

void main(void)

{

const n=10;

int a[10];

FILE *pfile;

int i,j,pos,start;

int *pstart;

pstart=&start;

/* вказівник вказує на змінну start */

clrscr();

printf("\nFilling vector with numbers...\n\n a=[ ");

for(i=0;i<10;i++)

{

a[i]=i+1;

printf("%d ",a[i]);

}

printf("]\n\nCreating binary file epa.dat for editing...");

pfile=fopen("epa.dat","w+b");

/*створення нового бінарного файлу для редагування */

j=fwrite(a,sizeof(int),n,pfile);

/* запис елементів вектора а у бінарний файл */

if(j<n) printf("\n\nAn error occured. Only %d of %d elements was written",j,n);

else printf("\n\nFile was filled with %d elements successfully",j);

fflush(pfile);

/* перед зчитуванням даних в режимі редагування обов’язково дописуємо вміст буфера у файл */

printf("\n\nEnter the number of element you want to read from bin file ");

scanf("%d",&j);

fseek(pfile,(j-1)*sizeof(int),SEEK_SET);

/*перехід до позиції необхідного елемента*/

pos=ftell(pfile);

/*Визначення позиції у файлі*/

fread(pstart,sizeof(int),1,pfile);

printf("\n\nSEEK_SET: %dth element position is %d, element is %d",j,pos,*pstart);

printf("\n\nPress any key to exit");

getch();

fclose(pfile); /* закриття файла */

}

    1. ЗАВДАННЯ НА РОБОТУ

Розробити та запустити у роботу програму на мові програмування "СІ", яка вирішує задачу відповідно до заданого нижче варіанта.

2.1. Відкрити для редагування текстовий файл, ім'я якого задається з клавіатури. Визначити, в якому із рядків файлу найбільша кількість голосних букв. Дописати відповідне повідомлення в кінець файлу з нового рядка.

2.2. Створити для редагування бінарний файл privod.dat, та заповнити його довільними числами (n<=30). Забезпечити підрахунок кількості входжень у файл числа, яке задається із клавіатури. Вивести результат на екран.

2.3. Відкрити для читання текстовий файл, ім’я якого задається з клавіатури. У файлі записано цілі числа через пробіл. Визначити максимальне число у файлі та його порядковий номер, вивести результат на екран.

2.4. Розрахувати значення функції Y=A*sin(B*X) при зміні X від 0 до 2 з кроком 0.01. Значення А та В зчитати з клавіатури. Записати значення функції та аргументу у текстовий файл temp.txt у 2 стовпці із відповідними підписами. Визначити максимальне та мінімальне значення функції, дописати його в кінець файлу. Змінити назву файла на result.txt.

2.5. Розрахувати значення функції Y=С+A*sin(B*X+D) при зміні X від 1 до 3 з кроком 0.1. Значення А, B, C, D зчитати з клавіатури. Записати значення функції у бінарний файл, ім’я якого задається з клавітури. Визначити кількість елементів у файлі.

2.6. Задано текстовий файл epa.txt, в якому записано матрицю цілих чисел розміром 10х10. Визначити суму стовпців матриці та дописати відповідний рядок в кінець файла.

2.7. Задано текстовий файл, ім'я якого задається з клавіатури. Визначити кількість слів у файлі.

2.8. Задано структуру “Студент”, що містить поля “Прізвище”, “Середня оцінка”. Створити базу даних із 3 студентів та записати у бінарний файл, ім'я якого задається з клавіатури. Знайти у файловій базі даних студентів, середній бал яких більший, ніж заданий.

2.9. Задано структуру “Ноутбук”, що містить поля “Ціна”, “Час автономної роботи”. Створити базу даних із 4 ноутбуків та записати у бінарний файл, ім'я якого задається з клавіатури. Знайти у файловій базі даних ноутбук, час автономної роботи якого більший заданного, а ціна мінімальна.

2.10. Створити бінарний файл, ім’я якого задається з клавіатури. Заповнити його дійсними числами (n<=20). Зчитати 5 останніх чисел у файлі, та впорядкувати їх за зростанням. Дописати їх в кінець файлу. Вивести вміст файла на екран.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]