Символьний ввід.Термін символьний ввід-вивід відноситься до вводу-виводу як символів так і цілих рядків. Символьний ввід-вивід відноситься до текстовихфайлів (до файлів, відкритих в текстовому режимі). Для символьного вводу з файлів є функції:
- 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() - Записування рядків
Функція fputc()виводить один символ в заданий потік. Прототип функції
іnt fputc(int ch, FILE *fp);
Аргумент ch це символ, який треба вивести, формально він має тип int, фактично використовується тільки його молодший байт, в цій змінній міститься записуваний у файл символ.
Аргумент fp це вказівник на потік виводу, який повертається з функції fopen()при відкритті файлу і у який виконується запис.Функція повертає виведений символ або EOF в випадку помилки. Символічна константа EOFвизначена в файлі stdio.h і рівна-1. Оскільки це значення не відповідає реальному символу, то його можна використати, як кінець файлу (але тільки в текстовому режимі).
Функція fputs() . Використовується для запису рядка . В ній треба вказати потік виводу, крім того вона не додає символ кінця рядка автоматично – Якщо він потрібний, то програміст повинен сам це ввести. Вона має прототип
char *fputs(char *str, FILE *fp) ;
str – вказівник на рядок з завершуючим нульовим символом, який треба вивести (записати у файл).
FILE *fp - це вказівник на файл, який повертається з функції fopen()при відкритті файла і у який відбувається запис.
Рядок strзаписується в файл, причому нульовий завершуючий символ \0відкидається. При успішній роботі функція повертає додатнє значення або EOF, коли була помилка.