Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Программирование / WORD / Лекции по ЯП (часть 3).doc
Скачиваний:
135
Добавлен:
15.04.2015
Размер:
1.34 Mб
Скачать

Оператор break

Break - для выхода из цикла, его содержащего:

for(...)

{

...

while(...)

{

...

break;---+

... | Из цикла while вышли,

} | но остались в цикле for

... <--------+

...

}

Оператор continue

Continue - для пропуска оставшейся части выполняемого в данный момент тела цикла и перехода к следующему выполнению тела цикла:

while (...) do

{ {

... ....

+---- continue; +---- continue;

| ... | ...

+--->} +--->}

while (...);

Функции вывода на экран

Функции вывода на экран делятся на три категории, как и функции ввода: это функции вывода символов, вывода строк и форматированного вывода.

Вывод символов

Стандартные библиотечные функции вывода символов Си посылают в поток вывода одиночные символы. Функция putchar() посылает выводимые данные в stdout (обычно ассоциируемый с экраном).

Функция putchar()

Прототип функции putchar(), определенный в файле stdio.h, имеет следующий вид:

int putchar(int с);

Эта функция записывает символ с в поток stdout. Хотя в прототипе указан параметр типа int, все же следует передавать в функцию аргумент типа char. Можно, конечно, передать и значение типа int, если оно гарантированно не выходит за символьный диапазон (от 0 до 255). Функция возвращает только что записанный символ или EOF в случае ошибки.

Функция вывода строк puts()

Функция puts () имеет следующий прототип:

int puts (char *ср);

Ее аргументом является указатель ср на первый символ отображаемой строки. Функция выводит на экран всю строку, кроме завершающего нулевого символа, и добавляет символ конца строки. Затем puts() возвращает положительное значение при успешном выводе, или ЕOF в случае ошибки.

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

Синтаксис:

include <stdio.h>

printf(строка_формата [, аргументы]);

Функция printf () принимает переменное число аргументов, но не менее одного.

Ее первым и единственным обязательным аргументом должна быть строка формата, которая указывает функции printf (), как оформлять выводимые данные.

Необязательные аргументы после строки формата — это переменные и выражения, значения которых нужно вывести.

Строка формата функции printf()может содержать следующие элементы.

  • Одну, две или ни одной спецификации формата вывода, указывающих, как выводить значения из списка остальных аргументов. Спецификация вывода начинается с симво­ла %, за которым идет один или несколько символов.

  • Символы, не входящие в спецификации формата, которые отображаются на экране в том виде, в каком они приведены в строке.

Пример 1.

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

%[флаг] [ширина_поля] [. [ точность] ] [ l] символ_формата

Компоненты, стоящие в квадратных скобках, являются необязательными.

Единственной обязательной частью спецификации вывода (кроме символа %) является символ формата. Символы формата и их значения перечислены в табл. 3.

Таблица 3 – Символы формата в спецификациях вывода

Символ

Значение

d, i

Целое десятичное число со знаком

u

Целое десятичное число без знака

o

Целое восьмеричное число без знака

x, X

Целое шестнадцатеричное число без знака в нижнем (х) или верхнем (X) регистре

c

Одиночный символ (аргумент должен представлять его код ASCII)

e, E

Вещественное число типа float или double в экспоненциальной форме (например, 123.45 выводится в виде 1.234500е+002). Если не указана точность, то выводится шесть цифр после точки. Регистром символов можно управлять, задавая спецификацию е или Е

f

Вещественное число типа float или double в дробно-десятичной форме (например, 123.45 выводится в виде 123.450000). Если не указана точность, то выводится шесть цифр после точки

g, G

Используется формат е, Е или f. Формат е или Е применяется в том случае, если пока­затель степени меньше -3 или больше, чем точность (по умолчанию 6). В противном случае используется формат f. Лишние нули отбрасываются

n

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

s

Строка символов. Аргумент должен быть указателем на строку типа char. Строка выво­дится, пока не встретится нулевой символ или пока не будет выведено заданное коли­чество символов. Завершающий нулевой символ не выводится

%

Вывод символа %

Непосредственно перед символом формата можно поставить модификатор l. Он применяется только к спецификациям о, u, х, X, i, d. Этот модификатор указывает, что целочисленный аргумент имеет тип long, а не просто int. В приложении к символам формата е, Е, f, указывает, что аргумент имеет тип double. Если модификатор l поставить перед любым символом формата, он будет проигнорирован.

Модификатор ll работает точно так же, как и l, только задает тип long long, а не long.

Спецификация точности состоит из десятичной точки (.), за которой может следовать число. Спецификация точности применима только к символам формата е, Е, f, g, G и s. Она указывает количество цифр после десятичной точки, которые следует вывести, а в спецификации s — количество выводимых символов. Если после десятичной точки в спецификации больше ничего нет, принимается точность 0.

Спецификация ширины поля задает минимальное количество символов, быть выведено. Эта спецификация может иметь одну из следующих форм.

  • Десятичное целое число, не начинающееся с 0. Выведенное значение дополняется пробелами слева, чтобы заполнить указанную ширину.

  • Десятичное целое число, начинающееся с 0. Выведенное значение дополняется нулями слева, чтобы заполнить указанную ширину.

  • Символ *. В качестве ширины поля берется значение следующего аргумента в списке, который должен иметь тип int. Например, если переменная w имеет тип int и значение 10, то оператор printf ("%*d", w, a); выведет на экран значение а с шириной поля 10.

Если ширина поля не указана или ее недостаточно для вывода значения, то значение выводится с такой шириной, как необходимо.

Последней необязательной частью строки формата printf() является флаг, который должен стоять непосредственно после символа %. Имеется четыре допустимых флага.

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

+

Число должно обязательно выводиться со знаком + или - перед ним.

' '

Означает, что перед положительным числом обязательно должен стоять пробел.

#

Применяется только к спецификациям х, X или о. Указывает, что ненулевые шестнадцатеричные значения (в случае х или X) должны отображаться с символами 0х или 0Х, а восьмеричные (в случае о) — с нулем перед ними.

Cтрока формата printf () может содержать специальные символы для управления выводом. В табл. 4 перечислены наиболее распространенный из них.

Таблица 4 – Часто используемые специальные управляющие символы

Символ

Значение

Символ

Значение

\a

Звуковой предупреждающий сигнал

\\

Обратная косая черта

\b

Возврат на один символ назад

\?

Знак вопроса

\n

Перевод строки

\’

Одинарная кавычка

\t

Горизонтальная табуляция

\”

Двойная кавычка

\v

Вертикальная табуляция

\ddd

ASCII символ в 8-миричном представлении

\r

Возврат каретки

\xdd

ASCII символ в 16-тиричном представлении

\f

Прогон страницы