Форматированный ввод

Эта операция выполняется функцией ввода, имеющей вид:

scanf (“форматная строка”, &аргумент,...), где

форматная строка – это список спецификаций форматов вводимых данных, разделённых запятыми;

&аргумент – адрес переменной (аргумента) в оперативной памяти, по которому будет записано значение переменной при вводе с клавиатуры.

Спецификация формата аргумента начинается с символа % (процент) и в простом случае должна содержать символ типа аргумента по шаблону

% тип.

Символ типа определяет, как интерпретируется компилятором вводимое значение аргумента:

тип переменной int (целый):

d, i – десятичное целое со знаком;

u – десятичное целое без знака (U – для типа long int);

o – восьмеричное число;

x – шестнадцатеричное число;

тип переменной float (вещественный):

f, e, E – вещественное число с фиксированной или плавающей точкой;

тип переменной char (символьный):

c – ввод одного символа;

s – ввод строки символов пока не встретится символ первого пробела

или '/n' (новая строка).

Пример. Ввести значения (исходные данные) в описанные переменные:

int m; float p1; char sim, str[80]; /* str символьный массив */

Функция ввода данных может иметь вид:

scanf (“%d%f%c%s”,&m, &p1, &sim, str);

Поскольку имя массива символов str задает адрес этого массива, постольку ему не предшествует символ адреса – &.

При вводе с клавиатуры числовые данные должны разделяться пробельным символом (путем нажатия клавиш <пробел> или <Enter>). Символьные данные не разделяются, поскольку пробельные символы прочитываются как вводимые символы. Например, с клавиатуры могут быть введены данные следующим образом:

25 37.08rHello /* в конце нажимается клавиша <Enter> */.

В памяти будут записаны значения переменных:

m=25, p1=37.08, sim=r, str=Hello\0 /* строка автоматически завершается управляющим символом конца строки ‘\0’ */.

При вводе данные поступают вначале во входной буфер stdin, а затем в оперативную память после нажатия клавиши <Enter> (ввод).

Для очистки буфера ввода stdin от оставшихся от предыдущего ввода символов используется функция

fflush (stdin).


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: