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

Для цифр с плавающей точкой с форматами %f, %e или %E, он означает количество значащих цифр после точки. Например, формат %10.4f определяет вывод на экран числа, состоящего из 10 цифр, четыре из которых расположены после точки.

Если модификатор применяется к спецификаторам формата %g и %G, он задает количество значащих цифр.

При выводе строк модификатор задает максимальную длину поля. Например, спецификатор %5.7s означает, что на экран будет выведена строка, состоящая как минимум из пяти символов, длина которой не превышает семи. Если строка окажется длиннее, последние символы будут отброшены.

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

Пример 2./* Следующая программа использует модификатор точности */

#include <stdio.h>

int main (void) {

printf("%.4f \n ", 123.1234567);

printf("%3.8d \n ", 1000);

printf("%10.15s \n ", "Это простая проверка. ");

return (0);

}

Программа выводит на экран следующие результаты:

123.1234

Это простая про

Пример 3./* Программа определяет длину строки с помощью библиотечной функции strlen() */

#include <stdio.h>

int main () {

char str[80];

printf("Введите строку - ");

gets (str);

printf("Длина строки равна %d ", strlen(str));

return (0);

}

Пример 3. Программа предлагает пользователю ввести длину в футах, после чего переводит полученное значение в метры и сантиметры.

#include <stdio.h>

Int main ()

{

float feet, meters, centimeters; /* объявление переменных */

printf(" Введите количество футов: ");

scanf("%f", &feet);

/* функция scanf() содержит строку форматирования, которая определяет, в каком порядке будут выводиться внешние данные и как они будут интерпретироваться программой. Параметр %f указывает, что вводимые данные будут приведены к типу float. Символ & - это оператор взятия адреса переменной feet. Особенность функции scanf() заключается в том, что она ожидает именно адрес переменной, которой будет присвоено новое значение. */

while (feet > 0) { /* цикл с предусловием, фигурные скобки необходимы тогда, когда

тело цикла содержит более одного оператора */

centimeters = feet * 12 * 2.54;

meters = centimeters/100;

printf(" %8.2 f (футы) равняется \n ", feet); /* принцип вывода заключается в использовании*/

printf("%8.2 f (метры) \n ", meters); /* строк форматирования, которые применяются тогда, */

printf("%8.2 f (сантиметры) \n ", centimeters); /*когда функция выводит не только литералы, */

printf(" \n Введите другое значение \n "); /*но и значения переменных */

printf(" (0 – конец программы): ");

scanf("%f", &feet);

}

printf(">>> До свидания!!! <<<");

return (0);

}

Элемент строки форматирования Назначение
%8.2 f Задает интерпретацию переменной feet как числа типа float в следующем формате: 8 символов до запятой и 2 символа после
(футы) равняется После вывода значения переменной feet будет сделан пробел и отображена строка “ (футы) равняется ”
\n Символ новой строки
, Запятая отделяет строку форматирования от списка обозначенных в ней переменных

В результате работы программы на экран будет выведено следующее:

Введите количество футов: 10

10.00 (футы) равняется

3.05 (метры)

304.80 (сантиметры)

Введите другое значение

(0 – конец программы) : 0

В этой программе следующие 3 оператора

printf(" %8.2 f (футы) равняется \n ", feet);

printf("%8.2 f (метры) \n ", meters);

printf("%8.2 f (сантиметры) \n ", centimeters);

можно заменить одним подробным полным сообщением:

printf(" %8.2 f (футы) равняется %8.2 f (метры) или %8.2 f (сантиметры) \n", feet, meters, centimeters);

Получение данных от пользователя на языке С++.

Поток cin класса istream ассоциируется со стандартным вводом (клавиатурой).

Поток cout класса ostream ассоциируется со стандартным выводом (экраном).

Основными классами ввода-вывода C++ являются istream и ostream. Первый из них перегружает операцию правого сдвига (>>), которая служит в нем для ввода данных и называется операцией извлечения из потока. Класс ostream перегружает соответственно операцию левого сдвига(<<); она применяется для вывода и называется операцией передачи в поток.

Пример 4. Пример программы на языке C++.

#include <iostream.h>

int main() {

int i;

cout << "Это — вывод.\n";

cout << "Введите число: ";

cin >> i;

cout << i << " в квадрате равно " << i*i << "\n";

return 0;

}

Оператор

cout << "Это — вывод. \n" ;

выводит на экран сообщение "Это - вывод." и выполняет переход на следующую строку.

Слово cout представляет собой идентификатор, связанный с экраном. Идентификатор coutи оператор "<<" можно при­менять для вывода данных любого встроенного типа, а также символьных строк.

Оператор

cout << "Введите число: ";

выводит на экран сообщение "Введите число: "и оставляет курсор на этой же строке.

Оператор

cin >> i ;

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

Идентификатор cin означает стандартный поток ввода, обычно связанный с клавиатурой. Как правило, выражение cin ">>" позволяет вводить данные любых встроенных типов, а также строки.

Оператор

cout << i << "в квадрате равно" << i*i << "\n";

показывает, что в одной и той же стро­ке программы можно использовать несколько операторов << подряд для одновременного вывода на экран строковых констант и значений переменных или выражений. Предположим, что переменная i имеет значение 10. Тогда данный оператор выве­дет на экран фразу "10 в квадрате равно 100".

Наши рекомендации