Функции форматированного ввода и вывода в си
В СИ функции форматированного ввода и вывода описаны в библиотеке stdio.h:scanf – функция форматированного ввода;
printf – функция форматированного вывода
Функция scanf имеет следующий заголовок: int scanf(const char * restrict format [,addresses,…]); Например для ввода двух целых и одной вещественной переменной следует писать так:
int c,d;
double f;
scanf("%d %d %lf”,&c,&d,&f);
Спецификатор типа в СИ
Сочетание символов %d или любое другое называется спецификатором типа. В общем случае он имеет следующий формат:% [*] [WIDTH] [hh|h|l|ll|L] символ_типа '*' – указывает запрещенные для ввода символы. WIDTH – задает максимальную длину поля ввода. В СИ есть такие вещи как преобразователи типа:
hh - в целочисленный char или unsigned char.
h - в целочисленный short int или unsigned short int.
l - к long int для всех целочисленных типов и к типу double всех вещественных типов.
ll - преобразование в целочисленный long long int или unsigned long long int.
L - преобразование к типу long double всех вещественных типов.
Спецификаторы типа:
d, i – число в десятичной системе, знаковое, целое.
o – число в восьмеричной системе, целое.
X, x – число в шестнадцатеричной системе (почитать о шестнадцатеричной системе счисления ), знаковое, целое.
u – число в десятичной системе исчисления, беззнаковое, целое.
f, e и g – число в десятичной системе исчисления, вещественное.
a - число в шестнадцатеричной системе исчисления, вещественное.
c – символ
s – строка в СИ
p – указатель
% - для ввода символа ‘%’
Функция printf имеет следующий прототип: int printf(const char * restrict format [,variables,…]); Пример вывода двух целых переменных и одной вещественной(5 знаков до запятой и 2 после):
int b,c;
double f;
printf("%d %d %5.2lf”,b,c,f);
Сочетание %d или любое другое называется спецификатором типа. В общем случае он имеет следующий формат: % [f] [WIDTH][.PREC] [h|hh|l|ll|L] символ_типа f – указывает необходимо ли вводить знак + для положительных чисел. WIDTH – длину поля. PREC – задает количество символов после запятой для вещественных чисел и минимальное количество знаков для целых чисел. Пример: Нам нужно ввести 2 вещественных числа и вывести на экран их сумму:
int main(int argc, char **argv)
{
double x, y, z;
scanf("%lf %lf”,&x,&y);
z = x + y;
printf("%5.2lf”, z);
return 0;
}
Теперь рассмотрим основные операции в СИ.