Функція scanf()
Для введення інформації зі стандартного потоку введення використовується функція scanf(). Синтаксис :
scanf("Рядок формату",&аргумент1[,&аргрумент2[, ...]]);.
Так, як і для функції printf(), для функції scanf() вказується рядок формату і список аргументів. Суттєва відмінність у синтаксисі цих двох функцій полягає в особливостях даного списку аргументів. Функція printf() використовує імена змінних, констант та вирази, в той час, як для функції scanf () вказується тільки покажчики на змінні.
Поширеною помилкою використання scanf() у початківців є звертання: scanf("%d",n) замість scanf("%d",&n).
Параметри цієї функції обов'язково повинні бути покажчиками!
Функція scanf() використовує практично той же набір символів специфікації, що і функція printf().
Приклад 5. Використання функції введення.
#include <stdio.h>
int main()
{
int a,b,c;
printf("A=");
scanf("%d",&a);
printf("B=");
scanf("%d",&b);
c=a+b;
printf("A+B=%d",c);
}
Більшість реалізацій мови С дозволяють пов'язувати імена stdin та stdout не тільки з клавіатурою та екраном, а й із зовнішніми файлами. Для цього в рядку виклику С програми необхідно вказати імена цих файлів. Якщо перед ім'ям файла введення поставити знак <, то даний файл буде пов'язаний з потоком введення.
prog < file.in
В даному прикладі інформація читається з файла file.in поточного каталогу, а не з клавіатури, тобто цей файл стає стандартним файлом введення, на який вказує stdin.
prog > file.out
А при такому виклику програми інформація виводиться не на екран, а у файл file.out.
Якщо необхідно читати інформацію з одного файла, а результати записувати у інший одразу, виклик програми буде мати вигляд :
prog < file.in > file.out .