- •3.1.1. Функции посимвольного ввода-вывода
- •3.1.1.1.Функции посимвольного ввода
- •Функции посимвольного стандартного ввода Функция getchar
- •Функция fgetchar
- •Функция ungetch
- •Функция getch
- •Функция getche
- •Функции посимвольного потокового ввода Функция fgetc
- •Функция getc
- •Функция ungetc
- •3.1.1.2. Функции посимвольного вывода
- •Функции стандартного вывода Функция putchar
- •3.1.2.Форматированный ввод-вывод
- •3.1.2.1.Форматированный ввод Функция scanf
- •Функция cscanf
- •Управляющая строка функций ввода
- •Модификатор
- •Символы преобразования и их смысл Тип переменной int
- •Тип переменной char
- •Тип переменной char*
- •Тип переменной float
- •3.1.2.2.Форматированный вывод Функция printf
- •Функция cprintf
- •Отдельные поля спецификации преобразования Флаги
- •Точность
- •Модификатор
- •Символы преобразования и их смысл Тип переменной int
- •Тип переменной char
- •Тип переменной char*
- •Тип переменной float
- •3.1.3. Функции построчного ввода-вывод
- •3.1.3.1.Функции построчного ввода Функция cgets
- •3.1.3.2.Функции построчного вывода Функция cputs
- •Лекция №2(продолжение)
- •4.1. Библиотека iostream
- •Буферизованные потоки (класс streambuf )
- •Потоковый класс ios
- •4.2.2. Потоковый ввод
- •4.3. Форматирование потокового ввода-вывода
- •4.3.1. Форматирующие функции-элементы
- •4.3.2. Флаги форматирования
Функция 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());}
}
Функция getch
Функция
#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;
}
