Посимвольный ввод-вывод
Стандартные функции ввода 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
Привет, программист!
Вывод символов из файла:
Привет, программист!
Нажмите любую клавишу...
Построчный ввод-вывод