Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология
Образование Политология Производство Психология Стандартизация Технологии


Функция форматированного вывода printf.



Формат функции форматного вывода на экран:

printf( управляющая строка, список объектов вывода);

В управляющей строке, заключенной в кавычки, записывают: текст, выводимый на экран; спецификаторы форматов, указывающие компилятору способ вывода объектов (каждый спецификатор формата начинается с символа '%' ).

В списке объектов вывода указываются выводимые на экран переменные, константы или выражения, разделенные запятыми. Список объектов вывода может отсутствовать.

Каждый из спецификаторов формата соответствует своему объекту из списка вывода, в порядке следования. Поэтому количество и порядок следования спецификаторов форматов должны совпадать с количеством и порядком следования выводимых объектов. Функция printf выполняет вывод данных в соответствии с указанными форматами. Весь остальной (кроме спецификаторов форматов) текст управляющей строки выводится на экран без изменений.

Имеется большое количество различных спецификаторов формата. Основные из них:

%d (%i) – десятичное целое число;

%f – вещественное число, запись с фиксированной точкой;

%е – вещественное число, экспоненциальная запись;

%g – вещественное число, запись с фиксированной точкой либо экспоненциальная запись, в зависимости от значения величины;

%o – восьмеричное число без знака;

%x – шестнадцатеричное целое число без знака (малые буквы a-f);

%X – шестнадцатеричное целое число без знака (большие буквы A-F);

%c – один символ;

%s – строка символов (массив char).

Для " длинных" типов чисел добавляется символ l : %ldlong (длинное целое), %lfdouble (вещественное число с удвоенной точностью). Для еще более длинных типов чисел вместо l добавляется L: %Ld - long long, %Lg - long double в соответствии с форматом %g.

Если нужно напечатать сам символ %, то его нужно указать 2 раза:

printf (" Только %d%% предприятий не работало. \n", 5);

Получим: Только 5% предприятий не работало.

Пример:

int number = 5; float but = 255; int cost = 11000;

printf(" %d студентов съели %f бутербродов. \n", number, but);

printf(" Значение числа pi равно %f. \n", M_PI);

printf(" Стоимость этой вещи %d %s. \n", cost, " Руб." );

...

В спецификаторах формата функции printf после символа % можно указывать число, задающее минимальную ширину поля вывода, например, %5d – для целых, %4.2f – для вещественных (означает поле общей шириной 4 символа, две цифры после запятой). Недостающие позиции будут слева заполнены пробелами (если нужно заполнить их нулями, перед шириной поля надо поставить символ '0', например: %05d ). Если, наоборот, указанных позиций не хватает для вывода целой части числа, то происходит автоматическое расширение поля до нужной ширины.

Если после «%» указан знак «минус», то выводимое значение будет выравниваться по левой (а не по правой) позиции поля вывода заданной ширины, например: % – 10d.

Использование функции printf для преобразования данных:

1) printf(" %d", 336.65); получим: 336;

2) printf(" %o", 336); получим: 520, т.е. 5*8**2+2*8+0*1 = 336;

3) printf(" %x", 335); получим: 14f (шестнадцатеричное).

Можно использовать функцию printf для нахождения кода ASCII некоторого символа:

printf (" %c – %d\n", 'a', 'a');

получим десятичный код ASCII символа а: a – 65.

17.Функция форматированного ввода информации scanf.

Функция scanf предназначена для форматированного ввода исходной информации с клавиатуры:

scanf (управляющая строка, список адресов объектов ввода);

Список адресов объектов ввода представляет собой имена переменных, разделенные запятыми, перед каждой из которых указывается символ &, обозначающий здесь операцию « взять адрес ».

В управляющей строке (заключенной в кавычки) указывается список спецификаторов форматов. Каждый спецификатор формата начинается с символа '%', за которым следует тип спецификатора, указывающий компилятору способ ввода объекта. Функция scanf() использует практически тот же набор модификаторов форматов, что и printf(), отличия от функции вывода следующие: форматы %f, %e, %g – эквивалентны. Для ввода коротких целых чисел ( short ) введен модификатор формата %h.

Вводить данные с клавиатуры можно как в одной строке через пробелы, так и в форме разных строк, нажимая после ввода текущего объекта клавишу Enter.

Поэтому функцией scanf() по формату %s строка вводится только до первого пробела.

18.Операторы преобразования данных и операторы управления. Оператор простой и составной, блок.

Оператор — это конструкция языка Си, которая вызывает выполнение действия.

В языке программирования Си существуют следующие операторы:

-простые операторы

-блоки операторов (блоки, составные операторы)

-управляющие операторы

Простой оператор или оператор-выражение — это выражение, заканчивающееся символом; (точка с запятой).

Специальным случаем простого оператора является пустой оператор, который ничего не делает. Пустой оператор состоит из единственного символа; (точка с запятой). Он используется в тех случаях, когда синтаксис языка требует наличия оператора там, где не требуется никаких действий.

Блок операторов (блок, составной оператор ) — это последовательность операторов, заключенная в фигурные скобки {}.

Блок используется для объединения нескольких операторов в один оператор. После закрывающей фигурной скобки точка с запятой может не указываться. После открывающей фигурной скобки можно объявлять переменные. Такие переменные, называемые автоматическими, известны только внутри этого блока, после выхода из блока они больше неизвестны.

" Тело" функции также представляет собой блок операторов.

Управляющие операторы — операторы языка Си, реализующие ветвления алгоритма, циклы и передачу управления.

Все управляющие операторы начинаются с ключевого слова, такого как: if, while, for и т.д.

Операторы передачи управления:

Классы управляющих операторов в языке Си следующие:

- операторы условного и безусловного перехода;

- оператор выбора альтернатив (переключатель);

- операторы организации циклов;

- операторы передачи управления (перехода).

Каждый из управляющих операторов имеет конкретную лексическую кон-

струкцию, образуемую из ключевых слов языка С, выражений и символов-

разделителей: { }, : ( ).

Операторы языка С записываются в свободном формате с использовани-

ем разделителей между ключевыми словами. Допустима вложенность операто-

ров. В случае необходимости можно использовать составной оператор - блок,

состоящий из любой последовательности операторов, заключенных в фигурные

скобки - { и }, после закрывающей скобки символ «; » не ставится.

Формально к операторам передачи управления относятся:

– оператор безусловного перехода goto;

– оператор перехода к следующему шагу (итерации) цикла continue;

– выход из цикла, либо из оператора switchbreak;

- оператор возврата из функции return.

Простые операторы:

- пустой оператор «; »;

- оператор присваивания - выполнение операций присваивания;

- оператор вызова функции - выполнение операции вызова функции.

Примеры простых операторов:

;

b=3;

a=b+7;

printf(" %lf\n", a);

Если в программе не указано иное, то операторы выполняются по очереди, один за другим, сверху вниз по тексту программы. Но существуют операторы, меняющие последовательность выполнения других операторов. К ним относятся условные операторы, операторы цикла и перехода.

Составные операторы:

Составной оператор представляет собой несколько операторов и объявлений, заключенных в фигурные скобки:

{ [oбъявление]: оператор; [оператор]; : }

Заметим, что в конце составного оператора точка с запятой не ставится.

Выполнение составного оператора заключается в последовательном выполнении составляющих его операторов.

Пример:

int main () { int q, b; double t, d; : if (...) { int e, g; double f, q; : }: return (0); }

Переменные e, g, f, q будут уничтожены после выполнения составного оператора. Отметим, что переменная q является локальной в составном операторе, т.е. она никоим образом не связана с переменной q объявленной в начале функции main с типом int. Отметим также, что выражение стоящее после return может быть заключено в круглые скобки, хотя наличие последних необязательно.

Операторы преобразования данных:

(последовательно выполняемые операторы)

Все они являются операторами – выражениями.

Выражение, оканчивающееся ‘; ‘ – это оператор - выражение:

1. Оператор – выражение - вызов функции, не возвращающей никакого значения.

Форма:

имя функции ( список фактических параметров);

Пример:

Void main ()

{ void cd (char); // прототип функции

cd ( ‘ *’); // оператор - выражение

}

 

2. Оператор – присваивания является оператором –выражением.

Оператор простого присваивания:

L-значение = выражение;

Оператор составного присваивания:

L-значение op= выражение;

Примеры:

x*= i; … i=x-4*i;

3. Оператор – выражение – инкремент или декремент L-значения:

Пример:

i++;

4. Операторы ввода - вывода данных также являются операторами –выражениями.


Поделиться:



Последнее изменение этой страницы: 2017-03-14; Просмотров: 328; Нарушение авторского права страницы


lektsia.com 2007 - 2024 год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! (0.031 с.)
Главная | Случайная страница | Обратная связь