Посимвольный ввод-вывод

 

Стандартные функции ввода fgetchar () или getchar () возвращают прочитанный символ из файла stdin (буфер ввода), который можно записать в переменную целого типа:

int ch;

ch = getchar(); .

Поскольку значение признака конца файла EOF не должно совпадать с ASCII-кодами символов, его определяют равным –1, а переменную ch описывают как целую, а не символьную.

 

Файловые функции чтения fgetc (fp) или getc (fp) возвращают символ из открытого файла fp:

ch = fgetc (fp);.

Стандартные функции вывода fputchar (ch) или putchar (ch) выводят символ на экран (stdout):

putchar(ch); .

Функции записи в файл fputc (fp) или putc (fp) помещают символ в открытый файл fp:

fputc (ch, fp); .

 

Пример. Демонстрируются приемы открытия и закрытия файла, а также использование файлового и стандартного символьного ввода-вывода данных.

Программа.

 

#include<conio.h>

#include<stdio.h>

int main ()

{ int ch;

char *filename = "c:\\tc\\myfiles\\char.dat"; /* спецификация файла */

FILE *fp; /* указатель файла */

clrscr(); /* очистка экрана */

/* Открытие файла для записи: */

if (( fp = fopen(filename, "w")) == NULL)

{ рuts ("0шибка открытия файла.\n”

”Проверьте спецификацию файла.");

puts ("He забудьте про удвоение символа \\ .");

return 0; /* аварийный выход из программы */

}

printf ("Фaйл %s открыт для записи.\n”

”Введите несколько символов и нажмите Enter.", filename);

printf (" EOF:%d\n", EOF); /* вывод значения EOF */

while ((ch=getchar()) != '\n') /* цикл ввода символов */

fputc (ch, fp); /* запись символа в файл */

freopen (filename, "r", fp); /* переоткрытие файла для чтения */

рuts ("Вывод символов из файла");

while ((ch=getc(fp)) != EOF) /* цикл чтения символов из файла */

putchar (ch); /* вывод символа на экран */

fclose(fp); /* закрытие файла */

printf("\nНажмите лю6ую клавишу...");

getch(); /* задержка экрана результатов */

return 1; /* нормальное окончание программы */

}

Результаты программы:

Файл c:\tc\myfiles\char.dat открыт для записи.

Введите несколько символов и нажмите Enter. EOF= -1

Привет, программист!

Вывод символов из файла:

Привет, программист!

Нажмите любую клавишу...

 

Построчный ввод-вывод