Консольный ввод-вывод
В языке Си отсутствуют специальные операторы ввода-вывода. Их заменяют стандартные функции, собранные в "библиотечный файл" stdio.h. Программа, содержащая обращения к функциям ввода-вывода, должна содержать строку подключения этого файла: #include <stdio.h>.
Рассмотрим шесть наиболее распространенных функций ввода информации с клавиатуры и ее вывода на экран (консольный ввод-вывод):
getchar и putchar (для ввода-вывода символа),
gets и puts (для ввода-вывода строки),
scanf и printf (для форматированного ввода-вывода ), и функцию
fflush очистки буфера stdin.
Функция getchar
Предназначена для ввода символа, не имеет параметров, возвращает целое число - код введенного символа. Обращение имеет вид: getchar(). Выполняя эту функцию, программа приостанавливает свою работу и ждет от пользователя ввода символа и/или нажатия клавиши Enter.
Функция putchar
Предназначена для вывода символа. Имеет один параметр типа int (код выводимого символа) или char. Обращение имеет вид: putchar(i), где i – выражение, определяющее символ. После вывода символа курсор не переходит к началу новой строки.
Пример 1.
/* Ввод-вывод символа */
#include <stdio.h>
main()
{
int ch; // Код вводимого символа
puts("Введите любой символ"); // Вывод строки - посказки
ch=getchar(); // Ввод символа и присваивание его кода переменной ch
puts("Вы ввели символ"); // Вывод строки - сообщения
putchar(ch); // Вывод символа, определенного кодом ch
printf("\n"); // Перевод курсора к началу новой строки
putchar('A'); // Вывод символа 'A', заданного константой
printf("\n");
putchar(65); // Вывод символа 'A', заданного кодом символа
fflush(stdin); // Очистка буфера ввода
getchar(); // Ввод символа и/или нажатия Enter для организации задержки
// смены окна Output на окно редактора текста
return(0);
}
Видим, что функция getchar() может использоваться в операторе присваивания. В этом случае код введенного символа присваивается переменной типа int (в примере - переменной ch).
Функции putchar('A') и putchar(65) выводят один и тот же символ 'A', символьной константой и кодом символа (65).
После выполнения данной программы окно Output будет иметь вид:
Введите любой символ
1
Вы ввели символ
1
A
A
_
Функция gets
Предназначена для ввода строки. Имеет один параметр, задающий адрес области памяти, в которую помещаются символы вводимой строки. В языке Си имя переменной, имеющей строковый тип, является этим адресом. Обращение имеет вид: gets(name)), где name – переменная строкового типа - имя вводимой строки. Выполняя эту функцию, программа приостанавливает свою работу и ждет от пользователя ввода последовательности символов и/или нажатия клавиши Enter.