История создания языка С++. Visual Studio. Обзор элементов языка С++. Типы данных. Ввод и вывод информации
План
1. История C++
Создание языка С
Создатели C
Появление C++
Эволюция C++
2. Современные IDE для C++
Microsoft Visual Studio
Создание проекта С++ в Visual Studio
Code Lite
MiniIDE
3. Обзор элементов языка С++
#include
using namespace std;
int main()
cout << "Это моя первая С++-программа.";
return 0;
Обработка синтаксических ошибок
Алфавит языка
Алфавит языка
Идентификаторы
Идентификаторы. Константы
Идентификаторы
4. Типы данных
Простые типы данных
Диапазоны значений простых типов данных
Тип void
Приоритеты операций в выражениях
5. Переменные
Инициализация переменных
6. Ввод и вывод информации
Библиотека iostream
Пространство имен
Преобразование типов данных
Преобразование типов данных
Преобразование типов данных
Библиотека math.h
Ввод информации. Ввод одного символа
Форматный ввод с консоли
Спецификаторы преобразования
Форматный вывод
Спецификаторы для различных типов данных
Спецификаторы для различных типов данных
Точность при выводе
Флаги, используемые при выводе
Пример
2.01M
Category: programmingprogramming

1. История создания языка С++. Visual Studio. Обзор элементов языка С++. Типы данных. Ввод и вывод информации

1. История создания языка С++. Visual Studio. Обзор элементов языка С++. Типы данных. Ввод и вывод информации

Лекция 1.

2. План

1. История создания языка С++.
2. Современные IDE для C++
3. Обзор элементов языка С++.
4. Типы данных
5. Переменные
6. Ввод и вывод информации
Программирование на C++. Лекция 1.
2

3. 1. История C++

• Язык C++ — один из значимых языков программирования.
• На C++ написаны операционные системы (Windows), драйвера
устройств, компьютерные игры, прикладные программы (Photoshop),
средства для разработки программ (Cython, PHP, Haskell, C#, JavaScript).
Python написан на C.
• Язык компилируемый, поддерживаемые парадигмы –
функциональное и ООП программирование.
• Построен на базе C, по сути С++ - это «Си с классами».
Программирование на C++. Лекция 1.
3

4. Создание языка С

Появление языка С потрясло компьютерный мир. Его
влияние нельзя было переоценить, поскольку он
коренным образом изменил подход к
программированию и его восприятие. Язык С стал
считаться первым современным "языком
программиста", поскольку до его изобретения
компьютерные языки в основном разрабатывались
либо как учебные упражнения, либо как результат
деятельности бюрократических структур.
С был задуман и разработан реальными,
практикующими программистами и отражал их подход
к программированию.
Его средства были многократно обдуманы, отточены и
протестированы людьми, которые действительно
работали с этим языком.
В результате этого процесса появился язык, который
понравился многим программистам-практикам.
Программирование на C++. Лекция 1.
#include <stdio.h>
#include <math.h>
int main()
{
double principal = 10000;
double rate = 5;
double time = 2;
double Amount = principal *
((pow((1 + rate / 100),
time)));
double CI = Amount - principal;
printf("Сложный процент к сумме
кредита или депозита: %lf", CI);
return 0;
}
4

5. Создатели C

Кен Томсон (1943
по наст. время).
Создатель UNIX и
ЯП B
Язык С изобрел Дэнис Ритчи (Dennis Ritchie) для компьютера PDP-11 (разработка компании DEC — Digital
Equipment Corporation), который работал под управлением операционной системы (ОС) UNIX.
Язык С — это результат процесса развития другого языка В (его автор — Кен Томпсон (Ken Thompson)).
Программирование на C++. Лекция 1.
5

6. Появление C++

Итак, C++ появился как ответ на
необходимость преодолеть еще
большую сложность программ.
Он был создан Бьерном
Страуструпом (Bjarne Stroustrup) в
1979 году в компании Bell
Laboratories (г. Муррей-Хилл, шт.
Нью-Джерси).
Сначала новый язык получил имя "С
с классами" (С with Classes), но в
1983 году он стал называться C++.
C++ полностью включает язык С.
Программирование на C++. Лекция 1.
Бьёрн Страуструп (1950 – по наст. время)
6

7.

С позволяет манипулировать битами, байтами и адресами, т.е. базовыми элементами, с которыми
работает компьютер. Таким образом, в С не отделяются аппаратные средства компьютера от
программных.
Например, размер целочисленного значения в С напрямую связан с размером слова центрального
процессора (ЦП).
Вместо встроенных инструкций для чтения / записи – процедуры библиотечных функций.
С — структурированный язык. Самой характерной особенностью структурированного языка является
использование блоков. Блок — это набор инструкций, которые логически связаны между собой. Блок
– это подпрограмма / циклическая / условная конструкция.
C не несет ответственности за действия программиста => у программиста полная власть над
компьютером => допускаются критические ошибки / уязвимости по работе с «железом».
C++ - ответ на все возрастающую сложность программ. К 70-м годам программы в несколько
десятков строк стали трансформироваться в программы в несколько сотен строк. Разобраться в
таком коде становится сложно, медленная разработка. Появился ООП.
Программирование на C++. Лекция 1.
7

8. Эволюция C++

С момента изобретения C++ претерпел три крупных переработки,
причем каждый раз язык как дополнялся новыми средствами, так и в
чем-то изменялся.
Первой ревизии он был подвергнут в 1985 году,
Второй — в 1990.
Третья ревизия имела место в процессе стандартизации, который
активизировался в начале 1990-х.
Программирование на C++. Лекция 1.
8

9.

Александр Степанов разработал стандартную библиотеку
шаблонов (Standard Template Library — STL). STL — это
набор обобщенных функций, которые можно
использовать для обработки данных. Он довольно
большой по размеру. Комитет ANSI/ISO проголосовал за
включение STL в спецификацию C++. Добавление STL
расширило сферу рассмотрения средств C++ далеко за
пределы исходного определения языка.
Однако включение STL, помимо прочего, замедлило
процесс стандартизации C++, причем довольно
существенно. Помимо STL, в сам язык было добавлено
несколько новых средств и внесено множество мелких
изменений. Поэтому версия C++ после рассмотрения
комитетом по стандартизации стала намного больше и
сложнее по сравнению с исходным вариантом Страуструпа
Александр Степанов
(1950 – по наст. время)
Программирование на C++. Лекция 1.
9

10. 2. Современные IDE для C++

IDE (Integrated Development
Environment, интегрированная
среда разработки) — это
программное приложение,
упрощающее написание кода.
IDE — полезные инструменты
для любого разработчика,
надеющегося упростить
процесс разработки.
Visual Studio
Программирование на C++. Лекция 1.
10

11. Microsoft Visual Studio

Как полноценная IDE Visual Studio лучше подходит для
более сложных систем
Visual Studio представляет собой мощный инструмент
для разработчиков, пишущих на C ++ и не только.
Плюсы
• Полная IDE
• Подписание пакетов и сертификаты делают его
хорошим выбором для официального использования.
Минусы
• Большой объем, много дополнительных модулей,
пакетов
• Не будет работать на старом оборудовании
Программирование на C++. Лекция 1.
11

12. Создание проекта С++ в Visual Studio

1. В Visual Studio откройте
меню Файл и выберите Пункт
Создать > проект , чтобы открыть
диалоговое окно Создание
проекта . Выберите
шаблон Консольное приложение с
тегами C++ , Windows и Консоль, а
затем нажмите кнопку Далее.
Программирование на C++. Лекция 1.
12

13.

2. В диалоговом окне Настроить
новый проект в поле Имя
проекта введите HelloWorld.
Выберите Создать, чтобы создать
проект.
Программирование на C++. Лекция 1.
13

14.

Visual Studio создаст
проект. Вы можете
приступать к
добавлению и
изменению исходного
кода. По умолчанию
шаблон консольного
приложения добавляет
исходный код
приложения Hello World:
Программирование на C++. Лекция 1.
14

15. Code Lite

• CodeLite — это бесплатная среда разработки на
C ++ с открытым исходным кодом (но также
поддерживает разработку на JavaScript и PHP).
Начинался как проект автозаполнения,
основанный на SQLite, но превратился в
кроссплатформенную IDE C ++.
• CodeLite относительно прост в использовании
и легковесен, что делает его хорошим
вариантом для отладки и тестирования на C ++.
Использует набор инструментов wxWidgets,
и вы можете отлаживать и компилировать,
используя бесплатные инструменты, включая
MinGW и отладчик GNU.
Программирование на C++. Лекция 1.
15

16. MiniIDE

https://ipc.susu.ru/learn.html
текстовый редактор
SciTE+компилятор MinGW C/C++
11.3
Программирование на C++. Лекция 1.
16

17. 3. Обзор элементов языка С++

/* Программа №1 - Первая С++-программа.
Введите эту программу, затем скомпилируйте ее и
выполните.
*/
#include <iostream>
using namespace std;
// main() - начало выполнения программы.
int main()
{
setlocale(LC_ALL, "Ru");
cout << "Это моя первая С++-программа.";
return 0;
}
Программирование на C++. Лекция 1.
F5
Файл с расширением *.cpp
17

18. #include

В языке C++ определен ряд
заголовков (header), которые
обычно содержат информацию,
необходимую для программы. В
нашу программу включен
заголовок (он используется для
поддержки в С++-системы вводавывода), который представляет
собой внешний исходный файл,
помещаемый компилятором в
начало программы с помощью
директивы #include.
Программирование на C++. Лекция 1.
/* Программа №1 - Первая С++программа.
Введите эту программу, затем
скомпилируйте ее и выполните.
*/
#include <iostream>
using namespace std;
// main() - начало выполнения
программы.
int main()
{
setlocale(LC_ALL, "Ru");
cout << "Это моя первая С++программа.";
return 0;
}
18

19. using namespace std;

Эта строка означает, что компилятор
должен использовать пространство
имен std.
Пространство имен (namespace)
создает декларативную область, в
которой могут размещаться
различные элементы программы.
Пространство имен позволяет
хранить одно множество имен
отдельно от другого.
Другими словами, имена,
объявленные в одном пространстве
имен, не будут конфликтовать с
такими же именами, объявленными
в другом.
Программирование на C++. Лекция 1.
/* Программа №1 - Первая С++программа.
Введите эту программу, затем
скомпилируйте ее и выполните.
*/
#include <iostream>
using namespace std;
// main() - начало выполнения
программы.
int main()
{
setlocale(LC_ALL, "Ru");
cout << "Это моя первая С++программа.";
return 0;
}
19

20. int main()

С функции main() начинается выполнение
любой С++-программы. Все С++-программы
состоят из одной или нескольких функций.
Каждая С++-функция имеет имя, и только
одна из них (её должна включать каждая С++программа) называется main().
С++-программа начинается с вызова функции
main() и обычно заканчивается возвратом из
функции main().
Открытая фигурная скобка на следующей
(после int main()) строке указывает на начало
кода функции main(). Ключевое слово int
(сокращение от слова integer), стоящее перед
именем main(), означает тип данных для
значения, возвращаемого функцией main().
Программирование на C++. Лекция 1.
/* Программа №1 - Первая С++программа.
Введите эту программу, затем
скомпилируйте ее и выполните.
*/
#include <iostream>
using namespace std;
// main() - начало выполнения
программы.
int main()
{
setlocale(LC_ALL, "Ru");
cout << "Это моя первая С++программа.";
return 0;
}
20

21. cout << "Это моя первая С++-программа.";

cout << "Это моя первая С++-программа.";
Это инструкция вывода данных на консоль.
При ее выполнении на экране компьютера
отобразится сообщение Это моя первая
С++-программа.
В этой инструкции используется оператор
вывода "<<". Он обеспечивает вывод
выражения, стоящего с правой стороны, на
устройство, указанное с левой.
Слово cout представляет собой встроенный
идентификатор (составленный из частей
слов console output), который в
большинстве случаев означает экран
компьютера.
Итак, рассматриваемая инструкции
обеспечивает вывод заданного сообщения
на экран.
Программирование на C++. Лекция 1.
/* Программа №1 - Первая С++программа.
Введите эту программу, затем
скомпилируйте ее и выполните.
*/
#include <iostream>
using namespace std;
// main() - начало выполнения
программы.
int main()
{
setlocale(LC_ALL, "Ru");
cout << "Это моя первая С++программа.";
return 0;
}
21

22. return 0;

При ее выполнении функция main()
возвращает вызывающему процессу (в
роли которого обычно выступает
операционная система) значение 0. Для
большинства операционных систем
нулевое значение, которое возвращает эта
функция, свидетельствует о нормальном
завершении программы. Другие значения
могут означать завершение программы в
связи с какой-нибудь ошибкой. Слово
return относится к числу ключевых
используется для возврата значения из
функции. При нормальном завершении
(т.е. без ошибок) все ваши программы
должны возвращать значение 0.
Программирование на C++. Лекция 1.
/* Программа №1 - Первая С++программа.
Введите эту программу, затем
скомпилируйте ее и выполните.
*/
#include <iostream>
using namespace std;
// main() - начало выполнения
программы.
int main()
{
setlocale(LC_ALL, "Ru");
cout << "Это моя первая С++программа.";
return 0;
}
22

23. Обработка синтаксических ошибок

Большинство С++-компиляторов попытаются "увидеть" смысл в
исходном коде программы, независимо от того, что вы ввели. Поэтому
сообщение об ошибке не всегда отражает истинную причину проблемы.
Программирование на C++. Лекция 1.
23

24.

Большинство С++-компиляторов предлагают несколько уровней
сообщений (и предупреждений) об ошибках. В общем случае можно
выбрать тип ошибок, о наличии которых вы хотели бы получать
сообщения. Например, большинство компиляторов по желанию
программиста могут информировать об использовании неэффективных
конструкций или устаревших средств.
Программирование на C++. Лекция 1.
24

25. Алфавит языка

Алфавит С++ включает:
1. прописные и строчные латинские буквы и знак подчеркивания;
2. арабские цифры от 0 до 9;
3. специальные знаки, например, {, %, # и т.д.
4. пробельные символы: пробел, символы табуляции, символы
перехода на новую строку.
Программирование на C++. Лекция 1.
25

26. Алфавит языка

Из символов алфавита формируются лексемы языка:
• идентификаторы;
• ключевые (зарезервированные) слова;
• знаки операций;
• константы;
• разделители (скобки, точка, запятая, пробельные символы).
Программирование на C++. Лекция 1.
26

27.

Для хранения данных в C++ используются различные сущности, наиболее
простыми из них являются литералы, константы и переменные.
Литералом называется явно указанное в исходном коде программы
значение определенного типа.
cout << 1024; // выводим на экран целочисленный
литерал
cout << "mir"; // выводим на экран строковый литерал
Программирование на C++. Лекция 1.
27

28. Идентификаторы

• Переменной называется именованная область памяти компьютера
(имя которой задаёт разработчик) в которую можно записывать (в том
числе повторно, замещая ранее хранимое значение) значения
определенного типа и откуда эти значения можно читать.
• При создании любой переменной требуется указать её тип и задать
имя.
int per1; // создали переменную типа int с именем
per1
per1 = 25; // сохранили в переменную целое число 25
int b; // создали переменную типа int с именем b
b = 3 + per1; // прочитали значение 25, сложили его с 3 и сумму записали в
b
cout << b; // прочитали из переменной b значение 28 и вывели его на экран
Программирование на C++. Лекция 1.
28

29. Идентификаторы. Константы

Константной называется именованная область памяти, в которую при
создании можно записать значение определенного типа, но далее по
ходу программы это значение можно только читать (и нельзя
изменять).
const int k1 = 13; // создали константу типа int с именем k1 и записали в
неё значение
cout << k1 = 12; // но нельзя изменить, это приведёт к ошибке
Программирование на C++. Лекция 1.
29

30. Идентификаторы

При выборе идентификатора необходимо иметь в виду следующее:
1. Идентификатор не должен совпадать с ключевыми словами и именами
используемых стандартных объектов языка.
2. Не рекомендуется начинать идентификаторы с символа подчеркивания (могут
конфликтовать с переменными компилятора).
3. На идентификаторы, используемые для определения внешних переменных,
налагаются ограничения компоновщика.
4. Для улучшения читаемости программы следует давать объектам осмысленные
имена. Если переменная действует в небольшой области кода, то ей лучше дать
короткое имя (sum, price), если у переменной большая область видимости то
лучше использовать camelCase.
5. Именованные константы должны быть записаны в верхнем регистре
SNAKE_CASE
Программирование на C++. Лекция 1.
30

31. 4. Типы данных

Тип данных определяет:
1. Внутреннее представление данных в памяти компьютера.
2. Множество значений, которые могут принимать величины этого типа.
3. Операции и функции, которые можно применять к величинам этого типа.
4. Разное представление данных для разных типов – явная типизация.
Прямое присваивание теряет смысл. Требуется преобразование, которое
является согласием на потерю данных.
int: 00000000 00000000 00000000 00001010 (10 в двоичном)
float : 01000001 00101000 00000000 00000000 (10.5 в IEEE 754)
Программирование на C++. Лекция 1.
31

32.

int, byte, short
Типы данных
Простые
float, double
char
bool
Перечисляемый
Структура, объединение
Структурированные
Массив
Строка
Класс
Программирование на C++. Лекция 1.
32

33. Простые типы данных

1. int (целый);
2. char (символьный);
3. wchar_t (расширенный символьный);
4. bool (логический);
5. float (вещественный);
6. double (вещественный с двойной точностью).
Программирование на C++. Лекция 1.
33

34. Диапазоны значений простых типов данных

Тип
Диапазон значений
bool
true и false
1
signed char
–128 .. 127
1
unsigned char
0 .. 255
1
signed short int
–32 768 .. 32 767
2
unsigned short int
0 .. 65 535
2
signed long int
–2 147 483 648 .. 2 147 483 647
4
unsigned long int
0 .. 4 294 967 295
4
float
3.4e–38 .. 3.4e+38
4
double
1.7 e–308 .. 1.7 e+308
8
long double
3.4 e–4932 .. 3.4 e+4932
10
Программирование на C++. Лекция 1.
Размер (байт)
34

35. Тип void

Тип void
Тип void используется для определения функций, которые не
возвращают значения, для указания пустого списка аргументов
функции, как базовый тип для указателей и в операции приведения
типов.
Программирование на C++. Лекция 1.
35

36. Приоритеты операций в выражениях

Ранг
Операции
1
( ) [ ] -> .
2
! ~ — ++ — & * (тип) sizeof тип( )
3
* / % (мультипликативные бинарные)
+ — (аддитивные бинарные)
5
<< >> (поразрядного сдвига)
6
7
< > <= >= (отношения)
== != (отношения)
8
& (поразрядная конъюнкция «И»)
9
^ (поразрядное исключающее «ИЛИ»)
10
|
11
12
13
14
15
&& (конъюнкция «И»)
|| (дизъюнкция «ИЛИ»)
?: (условная операция)
= *= /= %= -= &= ^= |= <<= >>= (операция присваивания)
, (операция запятая)
Программирование на C++. Лекция 1.
(поразрядная дизъюнкция «ИЛИ»)
36

37. 5. Переменные

Фактически переменная представляет именнованный участок памяти.
Переменная имеет
• тип,
• имя,
• значение.
Тип определяет, какие именно данные может хранить переменная.
<тип_переменной> <имя_переменной>;
Программирование на C++. Лекция 1.
37

38. Инициализация переменных

После определения переменной можно присвоить некоторое значение.
Присвоение переменной начального значения
называется инициализацией. В C++ есть три вида инициализации:
Название инициализации
Пример инициализации
Нотация присваивания (assignment
notation)
int age;
age = 20;
float price = 12.22;
int cost = 30 + 5;
Функциональная нотация (functional
notation)
Инициализация в фигурных
скобках (braced initialization)
int age (38);
int cost (13 + 18);
Программирование на C++. Лекция 1.
int age {38};
int cost {13 + 22};
38

39. 6. Ввод и вывод информации

Библиотека iostream
В первой строке программы с помощью директивы #include происходит
подключение заголовочного файла iostream.
Заголовочные файлы содержат описание функций и других готовых элементов,
которые можно использовать в своих программах после того, как заголовочный
файл подключён.
iostream входит в стандартную библиотеку C++, но заголовочные файлы можно
создавать и самостоятельно, помещая туда часто используемые функции,
шаблоны и прочие заготовки.
Заголовочный файл iostream содержит набор готовых функций для потокового
ввода и вывода.
Программирование на C++. Лекция 1.
39

40. Библиотека iostream

Ввод данных
Ввод данных в C++ осуществляется с помощью команды cin (Console Input).
Аргумент этой функции передаётся не в круглых скобках, а через
оператор >> (аналог перенаправления в GNU/Linux).
Вывод данных
Вывод данных в C++ осуществляется с помощью команды
cout (Console Output).
Программирование на C++. Лекция 1.
40

41. Пространство имен

std — это пространство имён, определённое для всей стандартной
библиотеки С++, а «::» — это оператор разрешения области видимости,
который указывает, из какого пространства имён должен браться следующий
за ним идентификатор.
Пространство имён — группа идентификаторов, внутри которой все
идентификаторы уникальны (не повторяются).
С помощью разных пространств имён можно использовать одни и те же
имена в одной и той же программе. Кроме того, пространство имён позволяет
решить следующую программу: в собственных программах для создания
сущностей мы можем использовать те же имена, что задействованы в
сторонних библиотеках.
Программирование на C++. Лекция 1.
41

42.

/*Пример программы, выводящей целую часть вещественного числа, введённого
пользователем с клавиатуры :*/
#include <iostream>
using namespace std;
int main() {
double num;
cout << "Vvedite chislo: ";
cin >> num;
int ch = (int)num;
cout << "Tselaya chast chisla: " << ch << endl;
return 0;
}
Программирование на C++. Лекция 1.
42

43. Преобразование типов данных

В C++ различают два вида преобразования типов данных: явное и
неявное.
• Неявное преобразование происходит автоматически. Это выполняется во время
сравнения, присваивания или вычисления выражения различных типов.
Наивысший приоритет получает тот тип, при котором информация теряется менее
всего. Не стоит злоупотреблять неявным преобразованием типов, так как могут
возникнуть разного рода непредвиденные ситуации.
Программирование на C++. Лекция 1.
43

44. Преобразование типов данных

Явное приведение осуществляется с помощью указания целевого типа данных
(того, к которому нужно привести) в круглых скобках перед выражением:
Приведение к целым числам от вещественных осуществляется путём отбрасывания
целой части (не округлением).
double s = 2.71;
int t = (int)s;
cout << t << endl; // 2
cout << (int)3.14 << endl; // 3
cout << (int)(2.5 + t) << endl; // 4
Программирование на C++. Лекция 1.
44

45. Преобразование типов данных

В C++ к тому же возможно приведение между логическим и числовыми типами.
Любое ненулевое число приводится к true, число 0 или 0.0 — к false. И, наоборот,
false преобразуется в 0, а true — в 1.
bool b = true;
int t = (int)b;
cout << t << endl; // 1
cout << (int)false << endl; // 0
bool n = (bool)42; // true
bool m = (bool)(5 * 2 - 10); // false
bool k = (bool)0.43; // true
double num1 = 2 + (double)(k || m); // 3.0
Программирование на C++. Лекция 1.
45

46. Библиотека math.h

Функции математической библиотеки:
• abs(x) – это модуль, возвращает положительное число
Константы из библиотеки math.h
M_PI и M_E
• acos(x) – арккосинус
• asin(x) — арксинус
• atan(x) — арктангенс
• cos(x) — косинус
• sin(x) — синус
• tan(x) — тангенс
• exp(x) — экспонента ex
#include <stdio.h>
#define _USE_MATH_DEFINES
#include <math.h>
int main() {
printf("%.50lf\n", M_PI);
printf("%.30lf", M_E);
return 0;
}
• log (x) — натуральный логарифм
• log10 (x) — это логарифм по основанию десять.
• pow(x,y) – возведение в степень xy
• ceil(x) – округление до ближайшего целого
Программирование на C++. Лекция 1.
46

47. Ввод информации. Ввод одного символа

c = getchar() – возвращает целый результат
putchar(c) - вывести результат
Альтернативы:
• getch()
• getche()
Программирование на C++. Лекция 1.
47

48. Форматный ввод с консоли

scanf(<строка описания форматов> [, <список
ввода>]);
Scanf может быть небезопасной функцией.
Замените ее на scanf_s
%[*] [ширина] [модификатор]
символ-спецификатор
• знак * (признак подавления присваивания);
• число, определяющее ширину поля ввода;
• модификатор h, l или L, указывающий на
размер получаемого значения;
• символ -спецификатор
Программирование на C++. Лекция 1.
48

49. Спецификаторы преобразования

Символ
c
d
i
Значение
Читает одиночный символ
Читает десятичное целое число
Читает целое число как в десятичном, так и восьмеричном или
шестнадцатеричном формате
efg
s
x
u
[]
%
Читает число с плавающей точкой
Читает строку
Читает шестнадцатеричное число
Читает десятичное целое число без знака
Читает набор сканируемых символов
Читает знак процента
Программирование на C++. Лекция 1.
49

50.

Перед символами-спецификаторами d, l, o, u и x может стоять буква h,
указывающая на то, что соответствующий аргумент должен иметь тип
short (а не int), или l (латинская l от long), указывающая на тип long.
Перед символами-спецификаторами e, f и g может стоять буква l,
указывающая, что тип аргумента double (а не float).
Программирование на C++. Лекция 1.
50

51. Форматный вывод

printf(<строка описания форматов> [, <список вывода>]);
Количество спецификаций формата должно быть равно количеству
выводимых значений, которые указываются в списке вывода
Спецификация формата всегда начинается с символа «%» и определяет
внешнее представление данных. Спецификация состоит из
обязательных и необязательных полей. В общем случае она имеет вид:
%[флаги] [ширина] [.точность] [модификатор] тип
Программирование на C++. Лекция 1.
51

52. Спецификаторы для различных типов данных

Символ
Тип данных
Формат вывода
c
int
Символ.
di
int
Знаковое десятичное целое.
o
int
Беззнаковое восьмеричное целое.
u
int
Беззнаковое десятичное целое.
xX
int
Беззнаковое шестнадцатеричное целое с использованием
символов «abcdef» или «ABCDEF».
eE
double
Число со знаком выводится в форме:
[ – ]n.dd…d e [знак]ppp,
где n – одна десятичная цифра, dddd – одна или более десятичных цифр, ppp
– три десятичные цифры порядка. Вместо поля «знак» выводится + или –.
Формат E выводит прописную букву E вместо строчной.
Программирование на C++. Лекция 1.
52

53. Спецификаторы для различных типов данных

Символ
Тип данных
Формат вывода
f
double
gG
double
s
string
Число со знаком в форме [ – ]nnnn.dddd, где nnnn –
десятичные цифры целой части, dddd десятичные цифры
дробной части. Количество цифр перед десятичной
точкой зависит от величины числа, а количество цифр
после десятичной точки от требуемой точности.
Использует %e или %E, если порядок меньше, чем -4, или
больше или равен точности; в противном случае
использует %f.
Строка символов. Символы
Программирование на C++. Лекция 1.
53

54. Точность при выводе

Тип
c, C
d, i, u, o, x, X
Действие
Точность не имеет эффекта.
Точность задаёт минимальное
количество символов, которые будут
напечатаны. Если число содержит
меньше символов, оно расширяется
нулями.
Точность задаёт количество символов
после десятичной точки. Число
округляется.
По умолчанию
Выводится символ.
Точность равна 1.
g, G
Точность задаёт максимальное
количество значащих цифр.
Печатается 6 значащих цифр.
s, S
Точность задаёт максимальное
количество выводимых символов.
Выводятся все символы строки.
e, E, f
Программирование на C++. Лекция 1.
Точность равна 6. Если точность равна 0
или опущена, десятичная точка не
выводится.
54

55. Флаги, используемые при выводе

Флаги

+
Значение
По умолчанию
Выравнивание по левому краю.
Выравнивание по правому краю.
Вывод знака + перед положительными числами.
0
Знак выводится только перед
отрицательными числами.
Добавление пробелов.
Добавление нулей перед выводимым значением. Если
одновременно используются флаги – и 0, 0 игнорируется.
Добавление пробела перед положительным числом. Если
Пробел не добавляется.
одновременно используются флаги пробел и +, пробел
игнорируется.
Добавление символов 0, 0х или 0Х перед ненулевым значением, Символы 0, 0х и 0Х не добавляются.
если флаг # используется с форматами о, х или Х соответственно.
пробел
#
При использовании с форматами e, E и f флага # выводимое
число будет содержать десятичную точку в любом случае.
Десятичная точка добавляется, только
если за ней следуют цифры.
При использовании с форматами g и G флага # выводимое число Десятичная точка добавляется, только
будет содержать десятичную точку и хвостовые нули в любом
если за ней следуют цифры. Хвостовые
случае.
нули не выводятся.
Игнорируется при использовании с форматами c, d, i, u и s.
Программирование на C++. Лекция 1.
55

56. Пример

Программирование на C++. Лекция 1.
56
English     Русский Rules