Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
100-105.docx
Скачиваний:
4
Добавлен:
11.09.2019
Размер:
33.41 Кб
Скачать

Ввод и вывод символов.

Ввод/вывод в С реализован с использованием функций,

Использование функций getc(), putc(), fgetc() и fputc().

Две функции getc() и putc() работают аналогично функциям getchar() и putchar().мы должны сообщить, какой файл следует использовать.

ch = getc(in);

— для получения символа от файла, на который указывает in.

putc(ch, out);

предназначена для записи символа ch в файл, на который ссылается указатель out типа FILE.

Функция putc() выдает один символ в файловый поток,

putc(ic,stdout);

Функцию getc() нельзя использовать для обработки одиночных клавиш,

getc() и putc() являются не истинными функциями, а макросами. Функции fgetc() и fputс() идентичны их аналогам макросам getc() и putc().

Простая программа сжатия файла.

#include<stdio.h>

#include<windows.h>

void main(int argc, char *argv[])

{

SetConsoleCP(1251);

SetConsoleOutputCP(1251);

FILE *ptrin, *ptrout;

char ch;

int i=0;

if(argc!=3)

printf("Неверный синтаксис команды\n");

if((ptrin=fopen(argv[1],"r"))==NULL)

{

printf("Ошибка открытия файла\n");

}

if((ptrout=fopen(argv[2],"w"))==NULL)

{

printf("Ошибка открытия файла\n");

}

while(getc(ptrin)!=EOF)

{

fseek(ptrin, -1, SEEK_CUR);

ch=getc(ptrin);

if((i++)%2==0)

putc(ch, ptrout);

}

fclose(ptrin);

fclose(ptrout);

}

      1. Использование функций getchar(), putchar(),fgetchar() и fputchar().

На самом деле два макроса getchar() и putchar() являются особыми реализациями макросов getc() и putc().

int ic;

ic = getchar() ;

и

putchar(ic);

В случае ошибки функция putchar() возвращает значение EOF.

Макросам getchar() и putchar() эквивалентны функции fgetchar() и fputchar().

      1. Использование функций getch() и putch().

Функции getch() и putch() являются полноценными низкоуровневыми функциями, Они сразу же вводят символ, нажатый на клавиатуре.

Функции getch() и putch() используются так же, как и getchar() и putchar().Функция getch() видит символ, введенный с клавиатуры, сразу же после нажатия клавиши; Эта возможность позволяет использовать getch() для обработки однократных нажатий клавиш, что невозможно с функциями getc() или getchar().