Функция getchar
Самый простой механизм ввода заключается в чтении по одному символу за раз из "стандартного ввода", обычно с терминала пользователя, с помощью функции getchar.
Форма записи:
#include <stdio.h>
int getchar(void);
Функция getchar() при каждом к ней обращении возвращает следующий вводимый символ. В большинстве сред, которые поддерживают язык С++, терминал может быть заменен некоторым файлом с помощью обозначения <: если некоторая программа prog использует функцию getchar то командная строка
prog < infile
приведет к тому, что prog будет читать из файла infile, а не с терминала. Переключение ввода делается таким образом, что сама программа prog не замечает изменения; в частности строка"<infile" не включается в командную строку аргументов в argv. Макро getchar идентична getc(stdin).
Пример:
#include <stdio.h>
int main(void)
{ char ch;
printf("Enter a character followed by <Enter>: ");
ch = getchar();
printf("The character read is: '%c'\n", ch);
return 0;
}
Функция fgetchar
Функция
#include <stdio.h>
int fgetchar(void);
читает отдельный текущий символ из стандартного потока stdin и увеличивает cсоответствующий указатель (если он есть) для указания следующего считываемого символа. Функция fgetchar является эквивалентной функции fgetc(stdin).
|
|
Пример:
#include <stdio.h>
int main(void)
{ char ch;
printf("Enter a character followed by <Enter>: ");
ch = fgetchar();
printf("The character read is: '%c'\n", ch);
return 0;
}
Функцияungetch
Функция
#include <conio.h>
int ungetch(int ch);
записывает непосредственно в буфер клавиатуры символ ch. Он будет доступен при выполнении следующей операции чтения с консоли (функциями файла <conio.h>). Разрешает помещать только один символ, который не может совпадать с константой EOF, описанной в файле <stdio.h>. В случае успеха функция возвращает ch; в противном случае возвращается -1.
Пример: Строка символ за символом помещается в буфер клавиатуры, затем читается и выводится на экран.
#include <stdio.h>
#include <conio.h>
#include <dos.h>
void main(void)
{ char *string="String of text";
while(*string)
{ ungetch(*string++);delay(200);
putchar(getch());}
}