Значки на экране iPhone и iPad — что они означают? Создание символов и вывод их на дисплей Какой значок означает запись на мониторе

В новых смартфонах компании «Самсунг», работающих на системе Android Oreo (серии телефон Galaxy S, Galaxy Note и A), появился новый значок, который выглядит как треугольник со стрелками внутри.

Как выглядит на смартфонах Самсунг

По-другому эту функцию называют «экономия данных»

Значок треугольника с двумя стрелками внутри отображается на одной линии с индикатором заряда батареи в строке с уведомлениями.

Значение

Значок «треугольник со стрелками» расшифровывается как «экономия трафика». Когда значок появляется на экране, то это говорит, что функция экономии трафика активна.

Большинству приложений для того, чтобы активироваться и работать, нужен интернет. Когда устройство находится в Wi-Fi-зоне, пользователь может не беспокоиться о мобильном трафике. Но как только смартфон покидает зону бесплатного интернета, начинается трата мобильного трафика, она продолжается и тогда, когда приложение пребывает в фоновом режиме. И пользователь может даже не заметить, как лимит будет исчерпан. Специально для того, чтобы сэкономить мобильный трафик, и была разработана функция экономии.

Экономия трафика:

  • существенно уменьшает использование мобильных данных;
  • растягивает срок автономной работы устройства;
  • блокирует уведомления.

Как убрать значок экономии трафика

Экономия трафика может быть активной по умолчанию

Инструкция:

  1. Нажать иконку «Настройки».
  2. Перейти в раздел «Соединение» (может называться «Подключения»).
  3. Потом в раздел «Использование данных».
  4. Нажать «Экономия трафика», чтобы отключить функцию.

В целом, это полезная функция, которая позволяет экономить средства и продлевать срок заряда батареи. Но если пользователь находится в зоне Wi-Fi, в работе этой опции нет никакой необходимости.

К микроконтроллеру и выводить на него символы из имеющегося массива. Теперь попробуем разобраться как создавать свои массивы с символами и писать функции для вывода их на дисплей. Начнем с того, что разрешение нашего дисплея 96x68 пикселей. Значит картинку большего разрешения вывести ми не сможем. Теперь нам надо из рисунка сделать массив. Для этой цели есть много разных программ. Мы будем пользоваться Image generate . Она находится в архиве . Кому она не нравится, тот может погуглить и найти множество других.

Итак, запускаем программу. Устанавливаем размер картинки по осям x, y. Максимальное значение x = 96, а по оси y = 68. Меньше эти цифры могут быть, но никак не больше. Дальше, масштаб выберем 8. У кого очень зоркий глаз, или большой монитор, эту величину может не трогать. После установки размера и масштаба жмем на иконку «Новый», или «Установить новый размер». Выберем размер 96x64. Далее можно нажать на иконку «Картинка», и загрузить точечный рисунок в формате «bmp», или нарисовать с помощью мышки свой. Нарисуем свой рисунок. Конечно художник из меня плохой, но как есть. Нарисовал дом и автомобиль. Дом скорей похож на туалет:-) Дальше жмем иконку «Массив». Видим кучу всяких цифр. Копируем их в наш проект. Изменим название массива на deg_96_64 . Это сделано для удобства. Сразу понятно какой размер картинки. Теперь надо как то вывести ее на дисплей. Для этого напишем функцию вывода под данное распределение.

/////////////////////////

void char_96_64 (char x, char y){

Unsigned int i;
gotoxy(x,y);
for (i = 0; i < 96; i++)
{
}

Gotoxy(x,y+1);
for (i = 96; i < 192; i++)
{
lcd_write(DATA,deg_96_64[i]);
}
gotoxy(x,y+2);
for (i = 192; i < 288 ; i++)
{
lcd_write(DATA,deg_96_64[i]);
}
gotoxy(x,y+3);
for (i = 288; i < 384 ; i++)
{
lcd_write(DATA,deg_96_64[i]);
}
gotoxy(x,y+4);
for (i = 384; i < 480; i++)
{
lcd_write(DATA,deg_96_64[i]);
}
gotoxy(x,y+5);
for (i = 480; i < 576; i++)
{
lcd_write(DATA,deg_96_64[i]);
}
gotoxy(x,y+6);
for (i = 576; i < 672; i++)
{
lcd_write(DATA,deg_96_64[i]);
}
gotoxy(x,y+7);
for (i = 672; i < 768; i++)
{
lcd_write(DATA,deg_96_64[i]);
}

}
////////////////////////////


Нормальное изображение

Теперь попробую разъяснить что к чему. В самом начале название самой функции. Дальше запомним два числа – значение по оси x = 96, и цифру в массиве в квадратных скобках . Зададим локальную переменную unsigned int i ; . Потом укажем координаты на экране для вывода одной строки. В цикле for зададим значение переменной I=0; i<96;i++. Это означает, что мы будем читать поочередно значения из массива от 0 до 96 и выводить их на дисплей функцией

lcd_write(DATA,deg_96_64[i]);

Дальше начнем с другой строки заново. Только теперь от 96 до 192. К оставшемуся числу добавляем значение по оси x. В данном случае это 96. Дальше третья строка и так далее. Так же с каждой новой функцией gotoxy(x,y); увеличиваем значение y . Думаю здесь все понятно.

Инвертированное изображение

Теперь узнаем как инвертировать изображение. То есть сделать не закрашенные участки закрашенными, и наоборот. Нам надо с помощью блокнота открыть файл библиотеки дисплея 1100.lib , и найти функцию void lcd_init(void). Найти в ней строки:

//lcd_write(CMD,0xa7); //- invert display

lcd_write(CMD,0xa6); //- normal display (non inverted)

Ненужную строку закомментировать и еще раз скомпилировать проект. Все исходники и функция вывода - . А теперь займёмся практической конструкцией - электронными . Если возникнут вопросы, то обращайтесь . Материал подготовил Бухарь .

Обсудить статью СОЗДАНИЕ СИМВОЛОВ И ВЫВОД ИХ НА ДИСПЛЕЙ

Урок 3. Панель задач

Внизу экрана находится панель задач. Рассмотрим ее подробнее.

Как видно она состоит из нескольких частей. Слева находится кнопка Пуск (), которая вызывает одноименное меню Пуск (смотри рисунок справа). Левую часть данного меню мы ранее уже рассмотрели. Правая часть содержит:

Александр - имя пользователя, кто в данный момент находится на компьютере (не является режимом).

Документы - вызывает папку с документами пользователя Александр. Если бы на компьютере находился другой пользователь, то открылась бы папка документов другого пользователя.

Изображения, Музыка - папки пользователя Александр с изображениями и музыкой. После установки Windows 7 все эти папки пустые. Отметим, что все эти папки (документы, изображения и музыка) находятся на том же диске, где установлена система Windows 7 и, если необходима перезагрузка этой системы с форматированием диска, то данные будут уничтожены. Для восстановления данных, перед переустановой системы, имеется возможность сохранить данные, о чем расскажем в дополнительных вопросах.

Игры - содержит папку со стандартными играми. После появления окна со списком игр, можно дважды щелкнуть по значку игры и она начнет выполняться.

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

Панель управления - основной режим для настройки операционной системы. Некоторые режимы будут рассмотрены на уроках, подробное описание будет дано в справочной части.

Устройства и принтеры - выводит список подключенных устройств к компьютеру, в том числе и принтеров.

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

Справка и поддержка - вызов справочной системы.

Панель быстрого запуска.

Данная панель используется для вызова программ на выполнение. Может возникнуть вопрос - зачем нужна данная панель, если можно запустить программу с рабочего стола. Бывают моменты, когда на компьютере выполняется несколько программ и на экране соответственно расположено несколько окон, каждая для своей программы. При этом содержимое рабочего стола не видно, а нижняя строчка (панель задач) всегда открыта для пользователя. Чтобы не убирать окна с экрана для того, чтобы добиться освобождения рабочего стола и используется данная панель.

Если подвести курсор к значку на этой панели, то появится надпись с названием данной программы, как это показано на рисунке справа. В данном примере, курсор мыши подведен к значку программы Internet Explorer, которая работает с интернетом.

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

Для того чтобы удалить значок, нужно щелкнуть по нему правой кнопкой мыши. На экране появится панно, в котором нужно выбрать режим Изъять программу из панели задач (смотри рисунок слева). В верхней части панно указаны страницы, на которые был доступ из программы в последнее время. Если бы это была программа проводник, то был бы список папок, которые просматривались и так далее.

Чтобы вставить новый значок в панель быстрого доступа, можно перетащить его из рабочего стола (или меню Пуск) в панель (рисунок справа).

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

Средняя часть панели.

Средняя часть панели предназначена для показа запущенных программ. Предположим, что вызваны программы Skype и CompoZer, а также и один режим (справочной системы). В дальнейшем режимы для удобства также будем называть программами (смотри рисунок ниже).

Как видно в средней части (справа от панели быстрого запуска) имеются три прямоугольника со значками. Один - программа Skype (), второй CompoZer (), третий - справочная система Windows (). Один из прямоугольников вдавлен (имеет более светлый фон) (), что говорит о том, что это активная задача. Два других не вдавлены, что говорит об их пассивности. На экране может быть только одна активная задача. Она отличается от других тем, что ее окно находится поверх всех окон, и все дейсвтия пользователя с помощью мыши и клавиатуры будет проводится именно с этим окном. Второй вид выполнения задачи, когда производятся вычисления, а также выполняется передача данных и прочее, но клавиатура и мышь не могут производить никаких действий. Для того, чтобы задача стала активной, нужно щелкнуть либо по окну задачи, либо по прямоугольнику в средней части панели задач.Если щелкнуть по прямоугольнику программы Skype (), то эта задача станет активной.

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

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



Сворачивание окна

Запустим программу проводник. Теперь свернем окно этой программы, для чего щелкнем по кнопке, на которой находится черточка, расположенной справа в верхней части окна (). В результате окно свернется, то есть, не будет выводиться на экран дисплея, и кнопка в виде небольшого прямоугольника, на котором находится название проводник, расположенная в нижней строке, станет отжатой (станет отжатым, так как имеется другая программа на экране, которая станет активной). Эта операция называется сворачиванием окна. При этом программа будет продолжать выполнять свои действия. Если бы мы скачивали файл из интернета и свернули окно этой программы, то скачивание все равно продолжится.

Для того, чтобы развернуть окно с программой проводник , нужно щелкнуть по кнопке, расположенной в средней части панели задач. При этом окно появится на экране, а кнопка будет как бы вжатой, то есть программа снова станет активной.

Таким образом, можно сворачивать и разворачивать окно программы. Этим действиям также называются: свернуть или распахнуть окно программы.

Раскладка клавиатуры.

Иногда требуется ввести какой-либо текст с клавиатуры. Это может быть название файла, адрес страницы в интернете и прочее. Как правило, после включения компьютера, можно набирать кириллические символы, то есть символы русского языка. Для того, чтобы напечатать буквы английского языка, нужно изменить раскладку клавиатуры. Раскладка - это таблица символов, которая соответствует клавишам клавиатуры в данный момент. Для того, чтобы перейти на латинский алфавит (английский символы) для их ввода, можно использовать два варианта действий. Прежде всего отметим, что внизу экрана слева на нижней строке находится надпись - Ru (). Это означает, что раскладка клавиатуры кириллическая, то есть при нажатии на клавишу будут вводиться русские символы.

Теперь изменим раскладку на латиницу. Нажмем на клавишу Shift , и не отпуская ее, нажмем и отпустим клавишу Alt . Необходимо так нажать, чтобы при нажатии на клавишу Alt , клавиша Shift была бы в это время также нажата. Обычно это производится в течении секунды-двух, но когда это делаешь впервые, то может потребоваться большее время. После выполнения данной операции на нижней строчке появится надпись - EN (). Если еще раз нажать на эти клавиши, то снова появится надпись - Ru и так далее.

Опишем второй способ смены раскладки. Для этого щелкнем по надписи - Ru и появится панно, вид которого показан на рисунке справа. Если щелкнуть по EN, то раскладка изменится на латинскую (английские символы). Также можно перейти на русский язык, нажав на RU.

Панель уведомлений.

На панели уведомлений выводятся значки режимов и программ, которые в данный момент работают. Рассмотрим их подробней.

В правой части панели показано выводится текущее время (16:31) и ниже текущая дата. Если подвести курсор к этим цифрам, то на экране появится окно с текущей датой и днем недели (смотри рисунок слева).

Если щелкнуть по текущему времени, то на экране появится окно, вид которого показан справа. В нем имеется текущая дата и время. Для того, чтобы изменить эти параметры, следует нажать на надпись Изменение даты и времени . При этом на экране появится окно, вид которого показан ниже.



Нажмем на кнопку Изменить дату и время... (рисунок справа).

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

Перейдем теперь к изменению названия года, который установим следующим образом. Нужно подвести курсор к полю, в котором находится надпись Сентябрь 2011 , щелкнуть по нему левой кнопкой мыши, после чего содержимое данного поля изменится, как показано на рисунке слева.

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

Правая часть окна содержит значение текущего времени, которое состоит из трех значений: текущего часа, минут и секунд. Для того, чтобы изменить час, подведем курсор к первым двум цифрам «10» и щелкнем левой кнопкой мыши. После того, как среди этих цифр курсор клавиатуры установится в виде мигающей черточки (), следует нажать на кнопки с вертикальными стрелками вверх и вниз, для увеличения или уменьшения значения текущего часа (). Далее то же самое проделаем с минутами и секундами.

Чтобы ввести цифры с клавиатуры, выделите при помощи мыши две цифры. Для этого нужно подвести курсор к левой стороне первой цифры, нажать на левую кнопку мыши и, не отпуская ее перенести курсор мыши через две цифры, после чего отпустить левую кнопку мыши. В результате две цифры будут выделены темным цветом и их значения можно ввести с помощью клавиатуры ().

Таким образом, с каждым значком или полем можно выполнять следующие действия:

Подвести курсор мыши к значку;

Щелкнуть по значку левой кнопкой мыши;

Щелкнуть дважды по значку левой кнопкой мыши;

Щелкнуть по значку правой кнопкой мыши.

Это может привести к разным последствиям. Иногда приводят к одному результату, например, дважды щелкнуть или однократно левой кнопкой мыши по значению времени приведет к одному результату. Но часто приводит к разным результатам.

Следующий значок - уровень громкости (). Если подвести курсор мыши к данному значку, то появится окно с уровнем громкости. В данном примере - уровень громкости - 67 процентов.

Если щелкнуть по этому значку, то выше его появится окно с бегунком (окно слева). Этот бегунок () можно потянуть вниз, уровень громкости уменьшится, если вверх - то будет увеличиваться. Если нажать на кнопку с громкоговорителем (), то громкоговоритель будет отключен. При повторном нажатии, он будет снова включен.

Следующий значок - индикатор подключения к сети (). можно попробовать самостоятельно посмотреть что будет, если подвести курсор к этому значку или по нему щелкнуть.

Следующий значок - индикатор подключения к электросети. Данный значок применяется только в ноутбуках. Если ноутбук подключен к электросети, то значок будет иметь вид - . Если подключения к электросети нет и ноутбук работает от аккумулятора, то значок примет вид - . Более подробно о параметрах данного режима будем рассматривать далее.

Слева от указанных выше значков находится треугольник (), нажав на который появятся значки программ (рисунок слева). Эти программы сами устанавливают свои значки в панели уведомлений. Как видно на рисунке, имеется четыре установленные программы. Не все программы помещают значки в эту панель, а те, которые, как правило, могут не иметь своего окна на экране и в средней области панели задач. Если дважды щелкнуть по значку программы, то появится окно программы на мониторе. Это окно можно закрыть, но значок останется. Для того, чтобы закрыть программу, нужно щелкнуть по значку правой кнопкой мыши и в появившемся панно выбрать режим Выход (смотри рисунок справа).

В данное панно выведен также значок безопасного извлечения устройств (). Для чего он нужен? Ведь устройства, подключенные к USB можно включать и отключать при работающем компьютере. Действительно, например, флешку можно подключить и отключить и проблем не будет. Но существуют устройства, которые при отключении теряют данные. К ним относятся внешние жесткие диски. Это происходит потому, что внешний жесткий диск имеет буфер, в котором находятся данные, в том числе и для записи на диск. Если эти данные не были перенесены на диск, то они теряются, так как при отключении питания, буфер будет обнулен. Для того, чтобы избежать этого и существует данная кнопка. Щелкнем по ней левой или правой кнопкой и на экране появится панно (рисунок справа) со списком устройств. Выберите устройство и щелкните по его названию левой кнопкой мыши. Устройство будет готово к отключению.

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

Установка параметров панели задач

Щелкнем по свободному месту панели задач правой кнопкой мыши. В появившемся панно имеется режим Диспетчер задач , который вызовем. Мы уже ранее рассматривали как вызвать этот режим (при помощи клавиш Ctrl+Alt+Del ). В компьютере всегда имеется несколько возможностей открыть программы или выполнить какое-либо действие. Это бывает полезно, когда вызывая режим, он не работает и можно попробовать воспользоваться другим способом. Для этого щелкнем правой кнопкой по свободному месту на панели задач и на экране появится панно с режимами, как это показано на рисунке справа. Теперь для вызова режима следует нажать на надпись Запустить диспетчер задач .

Затем выберем режим Свойства . На экране появится окно, вид которого показан ниже.


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

Переключатель Автоматически скрывать панель задач позволяет скрыть нижнюю строку (панель задач), чтобы окно программы могло отображаться на весь экран. Чтобы панель задач появилась, следует подвести курсор мыши к нижней границе экрана.

Положение панель задач на экране позволяет установить панель задач снизу, сверху, справа или слева экрана.

Кнопки панели задач позволяет выбрать режим группировки значков программы на панели задач. Ранее рассматривался режим Всегда группировать, скрывать метки . То есть, если несколько раз вызывается одна программа, например, браузер для работы с интернетом, то на панели задач будет один прямоугольник. Если к нему подвести курсор мыши, то рядом появится список запущенных копий. Если же выбрать режим не группировать, то каждой вновь появившейся программе будет соответствовать новый прямоугольник. Если вызвать 5 раз программу проводник, то присутствует пять прямоугольников, а если переключатель выключен, то один. В примере ниже запущена пять раз программа проводник и одна Skype. Как видно, один из прямоугольников выделен (с надписью Библиотеки), то есть фон более светлый, чем у других прямоугольников.

Если щелкнуть по кнопке Настроить в поле Область уведомлений, то в появившемся окне (рисунок ниже) можно указать, какие значки следует выводить в эту панель. Можно также выводить всегда все значки этой панели или часть из них скрывать (Скрывать неиспользуемые значки ).



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

Например, вы желаете вывести на экран текст:

Мы зовем ее "Наташа"

который содержит кавычки с именем «Наташа». Если вы попробуете отобразить эту строку с помощью инструкции

Puts("Мы зовем ее "Наташа"");

то получите от компилятора сообщение об ошибке. Вспомните, параметр, передаваемый функции puts(), должен начинаться и заканчиваться кавычками, чтобы компилятор Си знал, где начинается и где заканчивается строка. В приведенном выше ошибочном примере, компилятор будет интерпретировать параметр как «Мы зовем ее» с дополнительными символами «Наташа""», которые расположены снаружи по отношению к паре двойных кавычек, но внутри пары скобок, содержащих параметр для вызова функции puts(). Для компилятора в такой строке оказывается слишком много информации.

Приведем теперь правильную запись этой инструкции:

Puts("Мы зовем ее \"Наташа\"");

Рис.3. Отображение символов «кавычки»

На рис.3 показано, каким образом компилятор интерпретирует эту строку.

Кроме кавычек и обратной косой черты, вы можете использовать управляющие коды для отображения различных графических символов. IBM PC и совместимые компьютеры могут отображать набор символов, известных как расширенный набор ASCII-символов. Он включает в себя все буквы, цифры и знаки препинания, которые можно ввести с клавиатуры, а также некоторые графические символы и буквы русского алфавита. Каждый символ в наборе имеет собственный номер, например, номер 3 соответствует символу «сердечко» (по карточной терминологии - «черви»). Чтобы отобразить символ на экране, надо поместить соответствующий ему номер (в виде трех цифр) после знака обратной косой черты:

Putchar("\003");

В результате выполнения этой инструкции на дисплей выводится символ «сердечко». Для того чтобы отобразить символы всех карточных мастей, используйте следующую программу:

Main(){puts("Черви \003\n");puts("Бубны \004\n");puts("Трефы \005\n");puts("Пики \006\n");}

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

Рис.4. Отображение графических символов по их кодам

Для отображения графических символов можно использовать и функцию putchar() за счет двойственности символьных переменных. Если вы определили переменную типа int, ей, понятное дело, можно присвоить числовое значение:

Int count;count=5;

Если затем вы используете эту переменную как параметр, передаваемый функции putchar()

Putchar(count);

символ, ассоциированный со значением переменной, будет отображен на экране.

Таблица 1. Некоторые используемые коды символов.

Один из символов в наборе ASCII не появляется на экране, зато при попытке вывести его раздается звонок! Использование escape-последовательности \007 приводит к подаче звукового сигнала встроенным динамиком вашего компьютера. Приведенная ниже программа дважды подает звуковой сигнал, привлекая внимание к сообщению на экране:

#define BELL "\007" /* BELL легче запомнить, чем \007 */main(){putchar(BELL); /*Подача звукового сигнала*/putchar(BELL); /*Подача звукового сигнала*/puts("Вниманию покупателей!\n");puts("В отделе спортивных товаров \ проводится сезонная распродажа\n");}

Директива #define определяет константу BELL со значением \007. И хотя для определения константы вам пришлось ввести с клавиатуры четыре символа, компилятор воспримет ее как обычную символьную константу. Сигнал динамика слышится тогда, когда вы пытаетесь вывести константу BELL на дисплей с помощью функции putchar().

Многогранная функция printf()

Функции puts() и putchar() используются довольно часто, но, к сожалению, их возможности несколько ограничены. Ни одна из них не может обеспечить вывод числовых данных, и обе они имеют только один аргумент (параметр). Это означает, что обе функции могут отобразить только один объект.

Языки Си и Си++ имеют более многостороннюю функцию, называемую printf(). Она позволяет выводить на дисплей данные всех типов и работать со списком из нескольких аргументов. Кроме того, при вызове функции printf() можно определить способ форматирования данных.

В простейшем случае функцию printf() можно использовать вместо функции puts() для вывода строки:

#define MESSAGE "Привет!"main(){printf(MESSAGE);printf("Добро пожаловать в мой мир, а теперь … пока!");}

Так же как и puts(), функция printf() будет выводить на экран строки, заключенные в кавычки, и значения строковых констант и переменных.

Вывод чисел

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


Рис.5. Две части списка параметров функции printf()

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

Каждый указатель формата начинается с символа процента (%), после которого стоит буква, указывающая тип данных:

Таким образом, первая часть инструкции printf() записывается так:

Printf("%d")

Знак процента говорит компилятору, что за ним последует указатель формата (чтобы отобразить сам символ процента, напишите его дважды: printf("%%");).

Буква d указывает компилятору, что следует отобразить целое число, записанное в десятичной системе счисления (рис.6).


Рис.6. Составляющие указателя формата

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

Простейший пример использования функции printf() приведен ниже:

Printf("%d", 12);

В процессе выполнения этой инструкции значение 12 будет подставлено на место указателя формата (рис.7). В нашем примере мы на самом деле передали


Рис.7. Значение подставляется на место указателя формата

библиотечной функции printf() два параметра: строку формата и числовой литерал12.

Строка формата может содержать и обыкновенный текст с включенными в него указателями формата. Например, взгляните на инструкцию:

Printf("Мне исполнилось %d лет", 12);


Рис.8. Использование указателя формата внутри строкового литерала

Строкой формата в этом примере является запись

"Мне исполнилось %d лет"

Указатель формата, %d, говорит о том, что мы хотим вставить число между словами "Мне исполнилось" и словом "лет" (рис.8). Когда компилятор подставит число12 на место указателя формата, мы увидим следующую фразу:

Мне исполнилось 12 лет

В этом примере функции передается одновременно и строковый литерал, и числовое значение.

В данном случае тот же результат можно получить, передавая всю фразу целиком, как параметр, одной из функций:

Printf("Мне исполнилось 12 лет"); puts("Мне исполнилось 12 лет");

Но чтобы комбинировать текст с числовыми константами или переменными, следует использовать именно функцию printf() и указатели формата, как, например, в программе:

Main() { int age; age = 12; printf("Мне исполнилось %d лет", age); }

Эта программа отображает на экране строковый литерал и значение целочисленной переменной с помощью одной инструкции (рис.9).


Рис.9. Значение переменной подставляется на место указателя формата

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

Main(){int lucky_1, lucky_2;lucky_1 = 12;lucky_2 = 21;printf("Моими счастливыми номерами являются \ %d и %d", lucky_1, lucky_2);}

Здесь мы определили две целочисленные переменные lucky_1 и lucky_2 и присвоили им начальные значения. Список данных функции printf() содержит два имени переменных (аргумента), которые мы хотим отобразить, так что строка формата тоже должна иметь два указателя формата. Так как обе переменные относятся к типу int, оба указателя формата одинаковы - %d, как показано на рис.10.


Рис.10. Использование двух указателей формата

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

Моими счастливыми номерами являются 12 и 21

Значение переменной lucky_1, первого пункта в списке данных, займет место первого указателя формата, а второй пункт списка данных (значение переменной lucky_2) будет подставлен на место второго указателя. Если пункты в списке данных поменять местами:

Printf("Моими счастливыми номерами являются \ %d и %d", lucky_2, lucky_1);

то значения отобразятся в таком порядке:

Моими счастливыми номерами являются 21 и 12

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

Main(){int count;float amount;count = 5;amount = 45.48;printf("Стоимость составляет %f за %d штук", amount, count);}

Первое значение из списка данных - число с плавающей точкой - подставляется на место первого указателя формата %f. Второе значение - целое число - подставляется на место второго указателя формата %d. Программа компилируется и выполняется без ошибок, так как типы переменных и указателей формата совпадают. Как показано на рис.11, значение типа float замещает указатель %f, а значение типа int - указатель %d. В результате имеем:

Стоимость составляет 45.580000 за 5 штук


Рис.11. Тип данных должен соответствовать указателю формата

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

Printf("Стоимость составляет \ %f за %d штук", count, amount);

компилятор может не сообщить об ошибке, но в результате появится бессмысленная запись:

Стоимость составляет -2.002149Е37 за 16454 штук

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

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

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

Если вы хотите перевести курсор на следующую строку, вы должны добавить в строку формата управляющий код «новая строка» \n:

Printf("Стоимость составляет %f за %d штук\n", amount, count);

Управляющий код \n помещают там, где хотят начать новую строку (не обязательно в конце строки формата), например, в результате выполнения инструкции

Printf("Стоимость составляет %f\n за %d штук\n", amount, count);

на экране появятся две строки:

Стоимость составляет 45.580000 за 5 штук иСтоимость составляет 45.580000 за 5 штук

Можно использовать любые другие escape-последовательности для регулирования пробелов, подачи звукового сигнала или изображения специальных символов.

Похожие публикации