Форматированный ввод данных
Для функции scanf приемлема следующая форма операторной записи:
scanf ("СтрокаФормата", АдресаАргументов);
где:
СтрокаФормата состоит из необязательных символов, приводимых пользователем, и символов, определяющих собственно спецификацию (-ции) формата(-ов) преобразования значений вводимых данных в машинное представление (последовательности нулей и единиц);
АдресаАргументов – одно либо несколько имен соответственно объектов и ссылок на их адреса, перечисленных через запятую. Адрес памяти, которой поставлен в соответствие простой объект, извлекается операцией взятия адреса &, то есть описывается как &ИмяОбъекта.
Для функции scanf спецификация СтрокаФормата имеет синтаксис:
%[*][Ширина][Модификатор]Тип
где:
* – вводимое значение не присваивать переменной;
Ширина – максимальное число вводимых символов;
Модификатор – один из символов h – short int;
l – long int;
L – long double;
Тип – символ типа. Значения типов (спецификаторы) формата ввода:
Символ формата | Тип | Описание |
%i | int | целое число; оно может быть восьмеричным (с нулем слева) или шестнадцатеричное (с '0х' или '0Х' слева) |
%d | int | десятичное целое число |
%o | int | восьмеричное целое число (с нулем слева или без него) |
%u | unsigned int | десятичное беззнаковое целое число |
%x, %X | int | шестнадцатеричное целое число (с '0х' или '0Х' слева или без них) |
%с | char | символ |
%s | строка символов | строка символов (вводится без кавычек) |
%f, %F %e, %E %g, %G | float | десятичное вещественное число, возможно со знаком; обязательно присутствие либо десятичной точки, либо экспоненциальной части, а возможно обеих вместе |
%lf, %lF %le, %lE %lg, %lG | double / long double |
В СтрокеФормата функции scanf могут быть указаны любые символы (кроме символов пробела, табуляции, новой строки и '%'). Причем при запросе выполняемой программы эти символы (называемые образцом ввода) должны быть введены с клавиатуры в указанной последовательности.
Пример 4.
// Программа форматированного ввода-вывода данных
#include <stdio.h>
void main(){
int t;
float p;
char s;
scanf("%c",&s);
printf("s=%c\n",s);
scanf("%d",&t);
printf("t=%d\n",t);
scanf("%f",&p);
printf("p=%f\n",p);
}
Пример 5.
//Программа форматированного ввода-вывода данных
#include <stdio.h>
void main(){
int year, /*год рождения*/
height, /*рост*/
weight;/*вес*/
printf("Введите год рождения \n");
scanf("%d", &year);
printf("Введите рост \n");
scanf("%d", &height);
printf("Введите вес \n");
scanf("%d", &weight);
printf("\nВведенные данные: год рождения %d, рост %d,
вес %d\n", year, height, weight);
}
Дата добавления: 2015-02-16; просмотров: 628;