Функция scanf
Функция scanf читает данные из стандартного
потока ввода (обычно с клавиатуры) и сохраняет
их в переменные, адреса которых передаются
в качестве аргументов. Первым параметром
функция принимает строку формата, описывающую
ожидаемый ввод, а последующими параметрами -
адреса переменных, в которые следует записать
прочитанные значения. Функция возвращает
количество успешно прочитанных и присвоенных
элементов.
В строке формата используются спецификаторы
преобразования: "%d" для целых чисел,
"%f" для чисел с плавающей точкой,
"%c" для одиночного символа,
"%s" для строки. Перед именем переменной
обязательно ставится оператор взятия адреса
&, поскольку функция должна знать,
куда записывать результат.
Синтаксис
#include <cstdio>
int scanf(const char* format, ...);
Пример
Давайте прочитаем целое число и число с плавающей точкой, а затем выведем их на экран:
#include <cstdio>
#include <iostream>
using namespace std;
int main()
{
int a;
float b;
scanf("%d %f", &a, &b);
cout << a << " " << b << endl;
return 0;
}
Если ввести 12 и 3.14, результат
выполнения кода будет таким:
12 3.14
Пример
Давайте прочитаем строку и выведем её на экран:
#include <cstdio>
#include <iostream>
using namespace std;
int main()
{
char str[100];
scanf("%s", str);
cout << str << endl;
return 0;
}
Если ввести "abcde", результат выполнения
кода будет таким:
"abcde"
Пример
Давайте прочитаем два целых числа и выведем их сумму. Обратите внимание на проверку возвращаемого значения функции:
#include <cstdio>
#include <iostream>
using namespace std;
int main()
{
int a, b;
if (scanf("%d %d", &a, &b) == 2) {
cout << a + b << endl;
} else {
cout << "input error" << endl;
}
return 0;
}
Если ввести 3 и 4, результат
выполнения кода будет таким:
7