русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Функции ввода-вывода printf и scanf


Дата добавления: 2015-01-08; просмотров: 2685; Нарушение авторских прав


Эти функции использовались для ввода-вывода в языке C и перешли из него в C++. Они включена в библиотеку stdio.h (стандартный ввод/вывод).

Функция printf выполняет форматируемый вывод в стандартный поток stdout. Синтаксис функции выглядит следующим образом:

int printf (format-string [, argument...]);

Здесь format-string – строка (char*) управления форматом, состоящая из обычных символов, escape-последовательностей и, если за строкой формата следуют аргументы, ещё и спецификации их формата. Обычные символы и escape-последовательности просто копируются в stdout в порядке их появления.

Например, при использовании конструкции вида

printf("Строка 1\n\tСтрока 2\n");

на экран будет выведено:

Строка 1

Строка 2

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

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

printf ("Название товара: %s.\nАртикул: %d.\nЦена: %.2f.\n",

tovar, ID, cost);

Предполагается, что строковой переменной tovar хранится строковое название товара, в целочисленной переменной ID – артикул, а в вещественной переменной cost – цена. Спецификация формата %s означает, что вместо нее в строку будет выведено строковое значение (взятое в данном случае из переменной tovar). %d – вывод целого числа, а %.2f – вывод вещественного числа с точностью до второго знака после запятой. Результатом данного оператора может быть строка следующего вида:



Название товара: Клавиатура Logitech Comfort Wave 450.

Артикул: 630957.

Цена: 1023.56.

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

%[флаг(и)] [ширина] [.точность] [h | l | L] символ формата

Здесь h означает короткую, а l или L – длинную форму целого типа данных. Например, %ld означает long int, а %hd – short int. Ширина показывает, сколько символов будет выведено на экран. В это число входят все символы: и знак, и десятичная точка для дробных чисел. Если ширина окажется фактически меньше, чем требуется для вывода, то все равно значение выводится полностью. Точность задает количество цифр дробной части и применяется обычно только для дробных чисел.

В спецификации для задания типов выводимых данных используются следующие символы форматов:

Таблица 5 – Символы формата

Символ Тип выводимого объекта
символ (char)
%s строка (char*)
%d int
%i int
%o unsigned int (в восьмеричном виде)
%u unsigned int
unsigned int (в шестнадцатеричном виде, с символами abcdef)
%X unsigned int (в шестнадцатеричном виде, с символами ABCDEF)
%f вещественное число в фиксированном формате
%e вещественное число в научном формате
%g вещественное число в формате %e или %f в зависимости от значения
%p указатель в шестнадцатеричном виде

Предостережение! Частая ошибка ― отсутствие соответствующей переменной для каждой спецификации в строке printf. Другая частая ошибка ― несоответствие типа переменной для спецификации. Обычно это происходит тогда, когда в строке много спецификаций и программист путает порядок требуемых переменных.

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

Пример использования оператора scanf

#include <stdio.h>

int main()

{

float weight; //вес

int height; //рост

printf("Введите ваш вес: ");

scanf("%f", &weight);

printf("\nВведите ваш рост: ");

scanf("%d", &height);

printf("\n\nВес = %.2f, рост = %d\n", weight, height);

return 0;

}

 

Пример работы этой программы:

Введите ваш вес: 85.235

Введите ваш рост: 175

 

Вес = 85.23, рост = 175



<== предыдущая лекция | следующая лекция ==>
Установка ширины поля, точности и символов заполнения | Условный оператор (if)


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 1.034 сек.