Лекции.Орг


Поиск:




Категории:

Астрономия
Биология
География
Другие языки
Интернет
Информатика
История
Культура
Литература
Логика
Математика
Медицина
Механика
Охрана труда
Педагогика
Политика
Право
Психология
Религия
Риторика
Социология
Спорт
Строительство
Технология
Транспорт
Физика
Философия
Финансы
Химия
Экология
Экономика
Электроника

 

 

 

 


Функции преобразования строк и числовых данных




 

unsigned long int strtol(const char *str, char **endptr, int base);

работает аналогично функции strtol, но преобразует символьное представление числа в число типа unsigned long int.

 

double strtod(const char *str, char **endptr);

преобразует символьное представление числа в число типа double.

 

Все функции, перечисленные в этом параграфе, прекращают свою работу при встрече первого символа, который не подходит под формат рассматриваемого числа.

Кроме того, в случае если символьное значение числа превосходит диапазон допустимых значений для соответствующего типа данных, то функции atof, strtol, strtoul, strtod устанавливают значение переменной errno в ERANGE. Переменная errno и константа ERANGE определены в заголовочном файле math.h. При этом функции atof и strtod возвращают значение HUGE_VAL, функция strtol возвращает значение LONG_MAX или LONG_MIN, а функция strtoul – значение ULONG_MAX.

Для преобразования числовых данных в символьные строки могут использоваться нестандартные функции itoa, ltoa, utoa, ecvt, fcvt и gcvt. Но лучше для этих целей использовать стандартную функцию sprintf

 

int sprintf(char *buffer, const char *format,...);

форматирует строку в соответствии с форматом, который задан параметром format и записывает полученный результат в символьный массив buffer. Возвращает функция количество символов, записанных в символьный массив buffer, исключая завершающий нулевой байт.

%[флаги][ширина][.точность][модификаторы]тип

где

‘флаги’ – это различные символы, уточняющие формат вывода;

‘ширина’ определяет минимальное количество символов, выводимых по данной спецификации;

‘точность’ определяет максимальное число выводимых символов;

‘модификаторы’ уточняют тип аргументов;

‘тип’ определяет тип аргумента.

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

%[-][+|пробел][ширина][l]d

где

- – выравнивание влево, по умолчанию – вправо;

+ – выводится знак ‘+’, заметим, что для отрицательных чисел всегда выводится знак ‘-‘;

‘пробел’ – в позиции знака выводится пробел;

l – модификатор типа данных long;

d – тип данных int.

 

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

%[-][#][ширина][l][u|o|x|X]

где

# – выводится начальный 0 для чисел в 8 c/c или начальные 0x или 0X для чисел в 16 c/c,

l – модификатор типа данных long;

u – целое число в 10c/c,

o – целое число в 8 c/c,

x, X – целое число в 16 c/c.

Для вывода чисел с плавающей точкой используется следующий формат вывода:

%[-] [+ | пробел][ширина][.точность] [f | e | E | g | G]

где

'точность' – обозначает число цифр после десятичной точки для форматов f, e и E или число значащих цифр для форматов g и G. Числа округляются отбрасыванием. По умолчанию принимается точность в шесть десятичных цифр;

f – число с фиксированной точкой,

e – число в экспоненциальной форме, экспонента обозначается буквой 'e',

E – число в экспоненциальной форме, экспонента обозначается буквой 'E',

g – наиболее короткий из форматов f или g,

G – наиболее короткий из форматов f или G.

 

15 Цели введения новых типов:

1. Ограничить множество значений существующего интервального типа.

2. Определить тип, который описывает данные, имеющие сложную структуру.

3. Придать более осмысленные названия существующим типам данных

 

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

Другие возможности для создания новых типов данных - объединения, перечисления, структуры.

Для переименования типов данных используется зарезервированное слово typedef.

Области видимости новых имен типов данных подчиняется правилам, что и имена переменных.

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

 

Другие возможности для создания новых типов данных - объединения, перечисления, структуры.

Для переименования типов данных используется зарезервированное слово typedef.

Области видимости новых имен типов данных подчиняется правилам, что и имена переменных.

 

Перечисления - тип данных, который включает множество именованных целочисленных констант.

Переменные такого типа могут принимать значения только из заданного множества констант. Причем эти значения присваиваются по именам.


Синтаксис:
enum имя_типа {список имен}

Для хранения перечислений используются целочисленные значения.

Без явного указания нумерация начинается с 0 и увеличивается на 1. Можно указать другое значение,если его записать после знака = последующие значения будут

увеличиваться начиная с этого индекса

enum color {red, green, blue};

cout<<red<<' '<<blue<<' '<<green; // "0 2 1"

 

В языке С тип enum эквивалентен типу int.

Это позволяет присваивать целочислен-ные значения непосредственно переменным типа перечисления.

В C++ ведется более строгий контроль за типами данных, и такие присваивания не допускаются.

color d=0; // ошибка

 

 

Структурой называется упорядоченное множество данных. Данные входящие в структуру называются элементами (полями).

Тип каждого элемента может быть произвольным.

 

struct имя_типа_структуры

{
список элементов;

// описание шаблона структуры

}

 

Struct emp

{
int empno;

char value[10];

Double salary;

};
struct emp a;
// определение структуры в языке C

emp a; // определение структуры в языке C++

 

Инициализируются также как и массивы.

struct emp a={10,"Paul",200.15};


Так как элементы структуры описываются в блоке, то их имена принадлежат локальной области видимости (внутри этого блока).


Для доступа к элементу используется оператор (.).

a.empno=20;
strcpy(a.value,"John");
a.salaty=3000;
Для структур одного типа можно использовать оператор присваивания, который копирует поля структуры.

Struct emp b;

b=a;





Поделиться с друзьями:


Дата добавления: 2016-07-29; Мы поможем в написании ваших работ!; просмотров: 780 | Нарушение авторских прав


Поиск на сайте:

Лучшие изречения:

Если президенты не могут делать этого со своими женами, они делают это со своими странами © Иосиф Бродский
==> читать все изречения...

2517 - | 2393 -


© 2015-2025 lektsii.org - Контакты - Последнее добавление

Ген: 0.008 с.