Функция scanf — одна из самых известных и полезных функций языка C. Это позволяет программе на C принимать ввод из стандартного входного потока, в основном с клавиатуры. После того, как scanf считывает данные со стандартного ввода, он сохраняет значение в соответствии с указанным форматом параметра.
Из этого туториала Вы узнаете, как использовать функцию scanf в программах на языке C.
Спецификаторы формата
Спецификаторы формата Scanf, перед которыми стоит знак процента, описывают тип и формат данных, полученных из входного потока.
Синтаксис спецификатора формата scanf:
%[*][width][length]specifier.
Параметры в квадратных скобках необязательны.
- Звездочка (*) указывает, что данные считываются из входного потока, но не сохраняются в указанном аргументе.
- Ширина — ширина определяет максимальное количество символов стандартного ввода.
- Длина — длина определяет размер. Длина указывается в виде hh, h, l, ll, j, z, t, L
- Спецификатор — определяет тип данных, считываемых из входного потока.
- Функция scanf поддерживает следующие спецификаторы.
- % i,% d — спецификатор целочисленного формата со знаком
- % u — беззнаковое целое число
- % f,% e или% E — формат с плавающей запятой
- % 0 — восьмеричное целое число без знака
- % x,% X — Беззнаковое шестнадцатеричное целое число.
- % s — формат строки
- % c — спецификатор формата символа
Пример Scanf на C
В следующих примерах показано, как использовать scanf для чтения данных из стандартного ввода.
#include
int main() {
int scanme;
scanf(«%d», &scanme);
printf(«The value of scanme is %d», scanme);
return 0;
}
В приведенном выше примере считывается целочисленное значение из ввода и сохраняется в переменной scanme.
#include
int main() {
char scanme;
scanf(«%c», &scanme);
printf(«The value of scanme is %c», scanme);
return 0;
}
В приведенном выше примере считывается символьное значение из стандартного ввода.
#include
int main() {
char scanme[10];
scanf(«%s», &scanme);
printf(«The value of scanme is %s», scanme);
return 0;
}
В этом примере строка считывается из стандартного ввода.
В заключение
В этом руководстве мы изучили основы функции scanf и то, как мы можем использовать ее для чтения ввода из стандартного ввода. Чтобы узнать больше, обратитесь к справочному руководству по stdio.h или запустите команду man scanf в Linux.