Модификатор точности указывается после модификатора ширины поля (если последний есть). этот модификатор состоит из точки, за которой следует целое число.
Для цифр с плавающей точкой с форматами %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".