Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабораторн_робот_Ч2.doc
Скачиваний:
19
Добавлен:
03.11.2018
Размер:
2.12 Mб
Скачать

Int main ()

{

char name[80];

puts(str1);

gets(name);

return 0;

}

Будь-яка стрічка символів в мові Сі повинна закінчуватись нуль-символом ’\0’. В останній елемент масиву str1 нуль-символ буде записаний автоматично під час трансляції при ініціалізації масиву.

Форматний ввід-вивід. Для роботи з стандартними потоками в режимі форматного вводу-виводу визначені дві функції:

printf () – форматний вивід, перетворює дані з внутрішнього представлення в символьний вид в відповідності з форматною стрічкою і виводить їх в потік. Дані, які перетворюються і виводяться, задаються як аргументи функції printf ().

scanf () – форматний ввід з вхідного потоку, читає послідовності кодів символів з вхідного потоку і інтерпретує їх як цілі числа, дійсні числа, одиничні символи, стрічки.

Для роботи з файлами включені наступні функції:

fgetc (), getc () – ввід (читання) одного символу з файлу;

fputc (), putc () – запис одного символу в файл;

fprintf () – форматний вивід в файл;

fscanf () – форматний ввід (читання) з файлу;

fgets () – ввід (читання) стрічки з файлу;

fputs () – запис стрічки в файл.

Функція fputs (const char *s, FILE *stream) записує обмежену символом ’\0’ стрічку в файл, визначений вказівником stream на потік, і повертає невід’ємне число. Символ ’\0’ в файл не переноситься, і символ ’\n не записується в кінці стрічки замість ’\0’.

Функція fgets (char *s, int n, FILE *stream) – читає з визначеного вказівником stream файлу не більше (n-1) символів і записує їх в стрічку, на яку вказує вказівник s. Функція закінчує читання, як тільки прочитає (n-1) символів чи зустріне символ нової стрічки ’\n, який переноситься в стрічку s. Додатково в кінець кожної стрічки записується признак кінця стрічки ’\0’. В випадку успішного завершення функція повертає вказівник s. При помилці чи при досягненні кінця файлу, при умові, що із файлу не прочитаний жоден символ, повертається значення NULL. В цьому випадку вміст масиву, який адресується вказівником s, залишається без змін. На відміну від fgets () функція gets () відкидає символ ’\n.

Перед тим як працювати з потоком його необхідно ініціалізувати. При цьому потік потік зв’язується в виконуваній програмі з структурою визначеного типу FILE. Визначення структурного типу FILE знаходиться в заголовочному файлі stdio.h. В структурі FILE вміщуються компоненти, з допомогою яких ведеться робота з потоком: вказівник на буфер, вказівник поточної позиції в потоці.

При відкритті потоку в програму повертається вказівник на потік, що є вказівником на об’єкт структурного типу FILE. Цей вказівник ідентифікує потік в усіх наступних операціях.

Вказівник на потік, наприклад fp, повинен бути описаний в програмі наступним чином:

#include<stdio.h>

FILE *fp;

Вказівник на потік набуває значення в результаті виконання функції відкриття потоку:

fp = fopen (ім’я_файлу, режим_відкриття);

Параметри функції fopen () є вказівниками на масиви символів, які вміщують відповідно ім’я файлу, зв’язаного з потоком, і стрічку режимів відкриття. Однак ці параметри можуть задаватись і безпосередньо в вигляді стрічок при виклику функції відкриття файлу:

fp = fopen (”file.txt”,”r”);

де file.txt – ім’я деякого файлу, зв’язаного з потоком;

r – позначення одного з режимів роботи з файлом (тип доступу до потоку).

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

fclose - вказівник на потік

Відкритий файл можна відкрити повторно (наприклад, для зміни режиму роботи з ним) тільки після того, як файл буде закритий з допомогою функції fclose .