Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатика
ИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханика
ОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторика
СоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансы
ХимияЧерчениеЭкологияЭкономикаЭлектроника

Лабораторна робота № 22

Читайте также:
  1. Word. Робота з великими документами
  2. Вешалка для игл лабораторная
  3. Глава 36. Лабораторная крыса
  4. Глава IV Робота Суду
  5. Дипломних проектах (роботах)
  6. Індивідуальна робота вчителя-вихователя у навчально-виховному процесі. Робота з важковиховуваними учнями.
  7. Індивідуально – консультативна робота студентів

 

Тема: Складання програм з використанням символьного файлового вводу-виводу

Мета роботи: Навчитись працювати з файлами на зовнішніх носіях, оволодіти основами відкриття та закриття файлів, організовувати символьний ввід-вивід даних.

 

1 Короткі теоретичні відомості

Символьний ввід. Термін символьний ввід-вивід відноситься до вводу-виводу як символів так і цілих рядків. Символьний ввід-вивід відноситься до текстових файлів (до файлів, відкритих в текстовому режимі). Для символьного вводу з файлів є функції:

- fgetc() - Зчитування символів

- fgets() - Зчитування рядків

Функція fgetc() ідентичні і вводять один символ з заданого потоку. Прототип функції fgetc()

іnt getc(FILE *fp);

Аргумент fp це вказівник на потік вводу, який повертається з функції fopen() при відкритті файлу. Функція повертає введений символ або EOF в випадку помилки.

Функція fgets(). Використовується для читання рядка і має прототип

char * fgets( char *str, int n, FILE *fp );

char *str – адреса, за якою розташовані байти, в які треба помістити (зчитати, ввести) введений рядок

n – максимальне число символів (байтів), які можна ввести

FILE *fp це вказівник на файл, який повертається з функції fopen() при відкритті файла, з якого відбувається зчитування.

При успішній роботі функція повертає вказівник str. Значення NULL повертається в двох випадках

1.перш ніж функція ввела хоч би один символ, зустрівся кінець файлу (EOF). В цьому випадку вмістиме буфера незмінне

2.функція вспіла ввести один або декілька символів в буфер str, а потім зустрівся кінець файлу. Тоді після повернення NULL, буфер str містить випадковий набір символів.

Символьний вивід. Для символьного виводу з файлів є три функції

- fputc() - Записування символів

- fputs() - Записування рядків

Функція f put c() виводить один символ в заданий потік. Прототип функції

іnt f putc(int ch, FILE *fp);

Аргумент ch це символ, який треба вивести, формально він має тип int, фактично використовується тільки його молодший байт, в цій змінній міститься записуваний у файл символ.

Аргумент fp це вказівник на потік виводу, який повертається з функції fopen() при відкритті файлу і у який виконується запис.Функція повертає виведений символ або EOF в випадку помилки. Символічна константа EOF визначена в файлі stdio.h і рівна-1. Оскільки це значення не відповідає реальному символу, то його можна використати, як кінець файлу (але тільки в текстовому режимі).

Функція f put s(). Використовується для запису рядка. В ній треба вказати потік виводу, крім того вона не додає символ кінця рядка автоматично – Якщо він потрібний, то програміст повинен сам це ввести. Вона має прототип

char * f put s( char *str, FILE *fp );

str – вказівник на рядок з завершуючим нульовим символом, який треба вивести (записати у файл).

FILE *fp - це вказівник на файл, який повертається з функції fopen() при відкритті файла і у який відбувається запис.

Рядок str записується в файл, причому нульовий завершуючий символ \0 відкидається. При успішній роботі функція повертає додатнє значення або EOF, коли була помилка.

2 Варіанти індивідуальних завдань

№ вар. Умова завдання
1. Відкрити файл для запису, записати в нього символьний рядок, закрити файл, відкрити його для читання і прочитати з нього символьний рядок довжиною в 14 символів і вивести його на екран
2. Відкрити файл для запису, записати в нього символьний рядок, закрити файл, відкрити його для читання і прочитати з нього 7 символів в 7 символьних змінних, які вивести на екран.
3. Відкрити файл для запису, записати в нього символьний рядок, закрити файл, відкрити його для читання і прочитати з нього символьний рядок довжиною в 6 символи і вивести його на екран.
4. Відкрити файл для запису, записати в нього символьний рядок, закрити файл, відкрити його для читання і прочитати з нього 10 символів і вивести на екран.
5. Відкрити файл для запису, записати в нього символьний рядок, закрити файл, відкрити його для читання і прочитати з нього символьний рядок довжиною в 4 символи і вивести його на екран.
6. Відкрити файл для запису, записати в нього символьний рядок, закрити файл, відкрити його для читання і прочитати з нього 13 символів, які вивести на екран.
7. Відкрити файл для запису, записати в нього символьний рядок, закрити файл, відкрити його для читання і прочитати з нього символьний рядок довжиною в 6 символи і вивести його на екран.
8. Відкрити файл для запису, записати в нього символьний рядок, закрити файл, відкрити його для читання і прочитати з нього символьний рядок довжиною в 14 символів і вивести його на екран.
9. Відкрити файл, записати в нього символьний рядок, закрити його і відкрити його для читання і прочитати 10 символів і вивести на екран.
10. Відкрити файл для запису, записати в нього символьний рядок, закрити файл, відкрити його для читання і прочитати з нього символьний рядок довжиною в 6 символи і вивести його на екран..
11. Відкрити файл для запису, записати в нього символьний рядок, закрити файл, відкрити його для читання і прочитати з нього 7 символів в 7 змінних, які вивести на екран.
12. Відкрити файл для запису, записати в нього символьний рядок, закрити файл, відкрити його для читання і прочитати з нього символьний рядок довжиною в 14 символів і вивести його на екран.

3 Методичні вказівки

1. Створити файл з розширенням .TXT на дску C в папці GxxB (де хх -номер групи), яка міститься в свою чергу в папці lk.

2. Відкрити файл для запису і передбачити повідомлення при його відкритті.

3. Записати запропоновані дані у файл за допомогою функції fprintf(). Закрити файл за допомогою функції fclose().

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

5. Закінчивши роботу з файлом, закрити його за допомогою функції fclose();

4 Приклад виконання лабораторної роботи

Написати програму, яка записує рядок str у файл і читає 10 символів цього рядка в рядок str1. Одержаний рядок вивести на екран.

Текст програми:

#include <stdlib.h>

#include <stdio.h>

FILE *fp1, *fp2; /* 1-й файл для. читання, 2-й для запису*/

char str[]="qwertyuioplkjhgf", str1[40];

main() {

/* Відкриття файлів і перевірка на правильність відкриття. */

fp2 = fopen("C:\\lk\\list2.txt","w"); /* 2-й для запису*/

if (fp2!= NULL)

printf("\nSuccessful opening C:\\lk\\list.txt in mode r.\n");

else { printf("pomilka\n"); exit(0); }

fputs(str, fp2); /* запис з рядка str в файл fp2*/

fclose(fp2);

fp2 = fopen("C:\\lk\\list2.txt","r"); /* 1-й файл для. читання,*/

if (fp2!= NULL)

printf("\nSuccessful opening C:\\lk\\list2.txt in mode w.\n");

else { printf("pomilka\n"); exit(0);}

fgets(str1, 10, fp2); /* читання з файлу fp2 в рядок str1 10 символів*/

printf("\nstr= %s\n", str1);

/* Закриття файлів */

fclose(fp2);

system("pause");

return 0;

}

5 Контрольні запитання

1. Які функції без форматного вводу-виводу?

2. За допомогою якої функції відкриваються файли?

3. За допомогою якої функції закриваються файли?

4. В якій бібліотеці знаходяться функції файлового вводу-виводу?

5. За допомогою якої функції відкриваються файли?

6. За допомогою якої функції закриваються файли?


Дата добавления: 2015-07-17; просмотров: 132 | Нарушение авторских прав


Читайте в этой же книге: Лабораторна робота № 10 | Лабораторна робота № 11-12 | Лабораторна робота № 13-14 | Лабораторна робота № 15 | Int putchar(int c); | Лабораторна робота № 16 | Лабораторна робота № 17-18 | Struct data data1; | Лабораторна робота № 19 | Результат |
<== предыдущая страница | следующая страница ==>
Лабораторна робота № 21| Лабораторна робота № 24

mybiblioteka.su - 2015-2024 год. (0.009 сек.)