Вівторок, 19.03.2024, 08:33
Гость

Мішатронік

Мобільна версія | Додати у вибране  | Мій профіль | Вихід | RSS |
Меню сайту
Наше опитування
Яка мова вам ближче?
Всього відповідей: 11
Статистика

Онлайн всього: 1
Гостей: 1
Користувачів: 0


Изучение и использование функций printf( ) и scanf( )

Функции printf( ) и scanf( ) дают нам возможность взаимодействовать с программой. Мы называем их функциями ввода-вывода. Это не единственные функции, которыми мы можем воспользоваться для ввода и вывода данных с помощью программ на языке Си, но они наиболее универсальны. Эти функции входят в описание языка Си и они даны в библиотеке stdio.h. Обычно функции printf( ) и scanf( ) работают во многом одинаково - каждая использует управляющую строку и список аргументов. Сначала мы рассмотрим работу функции printf( ), затем scanf( ).

 
Формат Тип выводимой информации
%d десятичное целое число
%c один символ
%s строка символов
%e экспоненциальная запись
%f число с плавающей точкой, десятичная запись
%g используется вместо записи %f или %e
%u десятичное целое число без знака
%o восьмеричное целое число без знака
%x шестнадцатеричное целое число без знака
 

Инструкции, передаваемые функции printf( ), когда мы хотим напечатать некоторую переменную, зависят от того, какого типа эта переменная. Например, при выводе на печать целого числа применяется формат %d, а при выводе символа - %c. Форматы перечислены в таблице.

 

Посмотрим теперь, как эти формы применяются:

 
/* печать */
#include <stdio.h>
#define PI 3.14159
int main( )
{
 int number = 2003;
 printf("Интернет-университет информационных технологий был открыт в %d году \n", number); 
 printf("Значение числа pi равно %f.\n", PI);
}
 

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

 
printf(Управляющая строка, аргумент1, аргумент2,_);
 

аргумент 1аргумент 2 и т.д. - это печатаемые параметры, которые могут быть переменными, константами или дажевыражениями, вычисляемыми перед выводом на печать.

 

Управляющая строка - строка символов, показывающая, как должны быть напечатаны параметры. Например, в операторе

 
printf("%d студентов получили оценку %f.\n", 
 number, z);
 

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

 

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

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

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

 
printf("Эта книга не очень дорогая!\n"); 
printf("%c%d\n",'$',cost);
 

Если нужно напечатать сам символ %, то компилятор примет его за ошибочную спецификацию преобразования. Выходом из создавшейся ситуации служит довольно простое решение - писать два символа % подряд.

 

Например:

 
int i=2+3;
printf("Только %d%% населения способно учиться самостоятельно! \n",i);
 

Результат работы программы будет выглядеть следующим образом:

 
Только 5% населения способно учиться самостоятельно!
 

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

 
Модификаторы Значение
- Аргумент будет печататься с левой позиции поля заданной ширины. Обычно печать аргумента оканчивается в самой правой позиции поля. Пример: %-10
строка цифр Задает минимальную ширину поля. Большее поле будет использоваться, если печатаемое число или строка не помещается в исходном поле Пример: %4d
строка цифр Определяет точность: для типов данных с плавающей точкой число печатаемых цифр справа от десятичной точки; для символьных строк - максимальное число печатаемых символов Пример:

%4.2f (две десятичные цифры для поля шириной в четыре символа)

 
l Соответствующий элемент данных имеет тип long, а не int Пример: %ld
 

Примеры:

 
int main( )
{
 printf("/%d/\n",135);
 printf("/%2d/\n",135);
 printf("/%10d/\n",135);
 printf("/%-10d/\n",135);
}
 

Первая спецификация преобразования %d не содержит модификаторов. Это так называемый выбор по умолчанию, т. е. результат действия компилятора в случае, если вы не дали ему никаких дополнительных инструкций. Вторая спецификация преобразования%2d. Она указывает, что ширина поля должна равняться 2, но, поскольку число состоит из трех цифр, поле автоматически расширяется до необходимого размера. Следующая спецификация %10d показывает, что ширина поля равна 10. Последняяспецификация %-10d также указывает ширину поля, равную 10, а знак - приводит к сдвигу всего числа к левому краю.

 

Форма входа
Пошук
Друзі сайту
Календар
«  Березень 2024  »
ПнВтСрЧтПтСбНд
    123
45678910
11121314151617
18192021222324
25262728293031

Єдина Країна! Единая Страна!