Зміст:
Визначення - Що означає Scanf?
У мові програмування на C, scanf - це функція, яка зчитує відформатовані дані зі stdin (тобто стандартний потік вводу, який зазвичай є клавіатурою, якщо не перенаправлена), а потім записує результати у наведені аргументи.
Ця функція належить до сімейства функцій, які мають однаковий функціонал, але відрізняються лише джерелом даних. Наприклад, fscanf отримує свій вхід з потоку файлів, тоді як sscanf отримує свій вхід з рядка.
Техопедія пояснює Сканф
Функція scanf має такий прототип / підпис:
int scanf (формат const char *, …);
де
- int (integer) - тип повернення
- формат - це рядок, що містить специфікатори типів (див. нижче)
- "…" (еліпсис) вказує на те, що функція приймає змінну кількість аргументів; кожен аргумент повинен бути адресою пам'яті, куди записаний перетворений результат
Простий специфікатор типу складається з відсотка (%) символу та альфа-символу, який вказує тип. Нижче наведено кілька прикладів специфікаторів типу, розпізнаних scanf:
- % c - символ
- % d - ціле підписане число
- % x - Непідписане ціле число у шістнадцятковому форматі
- % f - плаваюча точка
- % s - Рядок
Функція працює, читаючи введення зі стандартного вхідного потоку, а потім сканує вміст "формату" на будь-які специфікатори формату, намагаючись відповідати двом. Після успіху функція записує результат у аргументи, що передаються.
Наприклад, якщо функція викликає
scanf ("% c% d", & var1, & var2);
а користувач набере "a1", функція запише "a" в "var1" і "1" в "var2". Якщо функція дзвінка, однак, є
scanf ("% x", & var);
той же вхід буде прочитаний як шістнадцяткове число "a1", яке становить 161 у десятковій частині.
Функція повертає таке значення:
- > 0 - кількість елементів, які успішно перетворені та призначені.
- 0 - жоден елемент не призначений.
- <0 - Помилка читання або досягла кінцевого файлу (EOF) до того, як було зроблено будь-яке призначення.
