Функция
#include <conio.h>
int getch(void);
выполняет ввод символа с клавиатуры без эхо- отображения на экране. В этой связи полезна для организации интерфейса с пользователем, при котором нажатие той или иной клавиши вызывает немедленную реакцию программы без отображения введенного символа на экране. Например, может использоваться в качестве задержки, пока не нажата любая клавиша.
Функция getche
Функция
#include <conio.h>
int getche(void);
выполняет небуферизуемый ввод символа с клавиатуры с эхо- отображением на экране. Перевод строки происходит при достижении правой вертикальной границы текущего активного окна.
Пример: программа иллюстрирует применение функций getch() и getche() для определения нажатий не только ASCII- клавиш, но и специальных клавиш.
#include <stdio.h>
#include <conio.h>
void main(void)
{ int ch;
do { puts("Нажмите любую клавишу...");
if(!(ch=getch()))
{ ch=getch();
printf("Специальная клавиша\
Расширенный скэн-код: %#u\n",ch);}
else printf("Символьная клавиша %c\
(Код %#u)\n",ch,ch);
puts("Продолжаете?(y/n)"); }
while((ch=getch())=='y'||ch=='Y');
}
Функции посимвольного потокового ввода
Функция fgetc
Функция
#include <stdio.h>
int fgetc(FILE *stream);
читает отдельный текущий символ из входного потока stream и увеличивает cсоответствующий указатель (если он есть) для указания следующего считываемого символа.
Пример:
#include <string.h>
#include <stdio.h>
#include <conio.h>
int main(void)
{
FILE *stream;
char string[] = "This is a test";
char ch;
stream = fopen("DUMMY.FIL", "w+");
fwrite(string, strlen(string), 1, stream);
fseek(stream, 0, SEEK_SET);
do
{
ch = fgetc(stream);
putch(ch);
} while (ch!= EOF);
fclose(stream);
return 0;
}
Функция getc
Функция
#include <stdio.h>
int getc(FILE *stream);
читает отдельный символ из текущей позиции потока stream и изменяет соответствующий указатель на файл для указания следующего символа.
Пример:
#include <stdio.h>
int main(void)
{
char ch;
printf("Input a character:");
ch = getc(stdin);
printf("The character input was: '%c'\n", ch);
return 0;
}