Явные преобразования при приведении типов
Каноническая форма преобразования:
(имя_типа)операнд;
В приведенной записи операнд – это переменная, или константа, или любое выражение, заключенное в скобки, имя_типа задает тип, к которому должен быть преобразован операнд.
Функциональная форма преобразования:
Имя_типа(операнд);
В этой записи имя_типадолжно иметь простое (несоставное) наименование.
Пример:
int i=2; float f=5.6; double d1,d2;
d1=(double)i*(double)f; //Правильно!
d2=double(i)*double(f); //Правильно!
unsigned long g=2,k1,k2;
k1=(unsigned long)f+g; //Правильно! преобразовываетсяf
k2=unsigned long(f)+g; // Ошибка! имя_типа составное
k3=(unsigned long)f+g; //Правильно! преобразовываетсяf
Элементарный ввод-вывод данных
Функция форматированного вывода printf() имеет синтаксис:
Printf(форматная_строка, список_вывода);
Список_вывода– это константа, переменная или любое унарное выражение, которое может быть заключено в скобки. Форматная_строка – последовательность символов в двойных кавычках, в которой можно с помощью спецификаторов задавать способ преобразования данных. Спецификаторы – это символы, которые начинаются знаком %. Вся форматная строка в функции printf() выводиться на экран, причем спецификаторы заменяются значениями выводимых аргументов из списка.Например:
int a=2,b=5;
printf("c=%d, a=%d, a+b=%d\n",9,а,a+b);// c=9, a=2, a+b=7
Спецификаторы преобразования задается в виде:
%[флаги][ширина][.точность]<тип>
где [флаги]:
"–" выравнивание числа влево (справа пробелы)
"+" вывод перед числом знака числа (знаки "+" и "–")
"#" вывод идентификатора системы счисления (0 в 8 СС, 0х в16 СС)
[ширина]– количество позиций для вывода;
[.точность] – количество цифр дробной части вещественных чисел или количество выводимых символов для строки.
Имеются следующие типы преобразования переменных
%c – целое число типа char, int, short в виде символа;
%d – целое число типа char, int, short в 10-ой системе счисления (СС);
%u – беззнаковое целое число в 10-ой СС;
%o – целое число в 8-ой системе счисления;
%x – целое число в 16-ой системе счисления;
%f – вещественное число типа float;
%e – вещественное число типа float в экспоненциальной форме;
%lf – вещественное число типа doublе;
%le – вещественное число типа doublе в экспоненциальной форме;
%s – строка; %p – адрес переменной (&a).
Функция форматированного ввода scanf() имеет синтаксис:
Scanf(форматная_строка, список_ввода);
Список_ввода– это адреса переменных, куда должны вводиться числа после преобразования. Форматная строка – последовательность спецификаторов (первый знак %) в двойных кавычках.
Дата добавления: 2016-04-11; просмотров: 680;