Стандартный посимвольный ввод предназначен для чтения очередного введенного с клавиатуры символа и осуществляется функцией getch() (get character – получить символ). Эта функция не имеет аргументов, однако скобки обязательны:
d=getch();
Этот оператор присваивает переменной символьного типа d значение очередного символа, введенного с клавиатуры. При выполнении функции getch() компьютер приостанавливает выполнение программы и ожидает ввода символа. После ввода символа (нажатия на одну из символьных клавиш) его значение присваивается в данном случае переменной d, и программа продолжает работу, при этом сам символ на экране не появляется.
Таким образом, функция getch() в Си полностью соответствует функции readkey в Паскале.
Стандартный посимвольный вывод предназначен для вывода на экран терминала одного символа и осуществляется функцией putch(аргумент) (put character – выдать символ). Эта функция имеет только один аргумент – переменную символьного типа или символьную константу, которую необходимо вывести на экран:
d=’*’;
putch(‘*’);
На экран будут выведены два символа подряд:
**
Стандартный ввод строк осуществляется функцией gets(аргумент) (get string – получить строку), имеющей один аргумент – имя строки:
char name[10];
При выполнении этой функции компьютер приостанавливает выполнение программы и ожидает ввода строки. После ввода строки (она вводится без открывающих и закрывающих кавычек и может состоять из нескольких слов, разделенных пробелами) и нажатия на клавишу ввода ее значение присваивается в данном случае переменной name и в нее автоматически добавляется нулевой символ ‘/0’ , завершающий строку. При этом вводимая строка высвечивается на экране.
Стандартный вывод строк осуществляется функцией puts(аргумент) (put string – выдать строку), аргументом которой является имя выводимой строки или строковая константа:
char name[10];
name=“Vasja”;
puts(“Pupkin”);
На экран будет выведено:
Таким образом, после вывода строки осуществляется автоматический перевод курсора на новую строку экрана.
Функции форматированного вывода предназначены для вывода символов, строк, целых и вещественных чисел.
Форматированный вывод осуществляется функцией printf (print format – форматная печать), которая выводит данные на экран терминала в соответствии с заданным форматом их представления:
printf(“формат”, аргументы);
где аргументы – список вывода – имена переменных, значения которых выводятся,
формат – представляет собой строку, содержащую сообщения, которые должны быть выведены на экран, управляющие символы (ESC-последовательности) и спецификации преобразований выводимых данных (аргументов):
printf(“\nСи – современный язык программирования\n”);
При выполнении этой функции курсор на экране перейдет на новую строку (\n), будет выведено сообщение:
Си – современный язык программирования
и курсор снова перейдет на новую строку. Как видно, ESC-последовательности включаются в строку, но сами на экран не выводятся.
Спецификации преобразований задают вид выводимых данных. Они состоят из символа % и спецификаторов:
d - для данных целого типа в десятичной системе счисления,
x - для данных целого типа в шестнадцатеричной системе счисления,
f - для данных вещественного типа в форме с фиксированной запятой,
e - для данных вещественного типа в форме с плавающей запятой,
g - наиболее короткое представление из f и e,
с - для данных символьного типа,
s - для строк.
Очередная спецификация в формате относится к очередному аргументу в списке вывода. Спецификации могут быть разделены пробелами, запятыми или идти подряд: