Разделы презентаций


Функции стандартной библиотеки

Содержание

Функции стандартной библиотекиФункции ввода/вывода. Функции работы со строками и символами. Математические функции.

Слайды и текст этой презентации

Слайд 1ФУНКЦИИ СТАНДАРТНОЙ БИБЛИОТЕКИ

ФУНКЦИИ СТАНДАРТНОЙ БИБЛИОТЕКИ

Слайд 2Функции стандартной библиотеки
Функции ввода/вывода.
Функции работы со строками и символами.


Математические функции.

Функции стандартной библиотекиФункции ввода/вывода. Функции работы со строками и символами. Математические функции.

Слайд 3ФУНКЦИИ СТАНДАРТНОЙ БИБЛИОТЕКИ.
Для использования в программе обращения к стандартной библиотеке,

нужно с помощью директивы #include включить в исходный текст программы

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

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

ФУНКЦИИ СТАНДАРТНОЙ БИБЛИОТЕКИ.Для использования в программе обращения к стандартной библиотеке, нужно с помощью директивы #include включить в

Слайд 4Ввод/вывод в C++ реализуется либо с помощью функций, унаследованных от

библиотеки С, либо с помощью потоков C++.
Смешивать эти два способа

в одной программе можно только синхронизировав ввод с помощью функции sync_with_stdio().

Функции ввода/вывода

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

Слайд 5ФУНКЦИИ ВВОДА/ВЫВОДА.
Каждый способ имеет свои преимущества:
Преимущество использования потоков в том,

что они легче в использовании в простых случаях ввода/вывода, не

требующих форматирования, а, главное, потоковые операции можно переопределить для собственных классов.
Ввод/вывод в стиле С удобнее использовать при форматированном выводе в программах, не использующих объектно-ориентированную технику.

Кроме того, существует множество программ, написанных на С и перенесенных на C++, с которыми программисту приходится сталкиваться.

ФУНКЦИИ ВВОДА/ВЫВОДА.Каждый способ имеет свои преимущества:Преимущество использования потоков в том, что они легче в использовании в простых

Слайд 6ФУНКЦИИ ВВОДА/ВЫВОДА.
Для использования функций ввода/вывода в стиле С необходимо подключить

к программе заголовочный файл или .
При вводе/выводе данные

рассматриваются как поток байтов.

Физически поток представляет собой файл или устройство
(например, клавиатуру или дисплей).

ФУНКЦИИ ВВОДА/ВЫВОДА.Для использования функций ввода/вывода в стиле С необходимо подключить к программе заголовочный файл или . При

Слайд 7ОТКРЫТИЕ ПОТОКА.
Работа с потоком начинается с его открытия.
Поток можно

открыть для чтения или записи в двоичном или текстовом режиме.
Функция

открытия потока имеет формат:

Первый параметр — имя открытого файла в виде С-строки
Второй параметр — режим открытия файла
При успешном открытии потока функция возвращает указатель на предопределённую структуру типа FILE, содержащую всю необходимую для работы с потоком информацию, или NULL в противном случае.

FILE* fopen(const char* filename, const char* mode);

ОТКРЫТИЕ ПОТОКА.Работа с потоком начинается с его открытия. Поток можно открыть для чтения или записи в двоичном

Слайд 8Открытие потока.
режим открытия файла:

Открытие потока.режим открытия файла:

Слайд 9ОТКРЫТИЕ ПОТОКА.
По умолчанию файл открывается в текстовом режиме, при котором

комбинация символов «возврат каретки» и «перевод строки» (0x13 0x10) при

вводе преобразуются в одиночный символ перевода строки.
при выводе выполняется обратное преобразование
В двоичном режиме эти преобразования не выполняются.
ОТКРЫТИЕ ПОТОКА.По умолчанию файл открывается в текстовом режиме, при котором комбинация символов «возврат каретки» и «перевод строки»

Слайд 10Открытие потока.
Пример:
Указатель f используется в дальнейших операциях с потоком.
Его

передают функциям ввода/вывода в качестве параметра.
FILE *f = fopen("d:\\cpp\\data", "rb+");

Открытие потока.Пример:Указатель f используется в дальнейших операциях с потоком. Его передают функциям ввода/вывода в качестве параметра.FILE *f

Слайд 11Открытие потока.
При открытии потока с ним связывается область памяти, называемая

буфером.
При выводе вся информация направляется в буфер и накапливается там

до заполнения буфера или до закрытия потока.

Чтение осуществляется блоками, равными размеру буфера, и данные читаются из буфера.

С помощью функций setbuf и setvbuf можно управлять размерами и наличием буферов.

Следует иметь в виду, что при аварийном завершении программы выходной буфер может быть не выгружен, и возможна потеря данных.

Открытие потока.При открытии потока с ним связывается область памяти, называемая буфером.При выводе вся информация направляется в буфер

Слайд 12Открытие потока.
Существует пять предопределенных потоков, которые открываются в начале работы

программы.
1. стандартный ввод stdin
2. стандартный вывод stdout
3. стандартный вывод сообщений об ошибках stderr
4. стандартный

дополнительный поток stdaux
5. стандартная печать stdprn

Первые три потока по умолчанию относятся к консоли.

Эти указатели можно использовать в любой функции ввода/вывода там, где требуется указатель потока.

Открытие потока.Существует пять предопределенных потоков, которые открываются в начале работы программы.1.	стандартный ввод stdin2.	стандартный вывод stdout3.	стандартный вывод сообщений

Слайд 13ВВОД/ВЫВОД В ПОТОК.
Ввод/вывод в поток можно осуществлять различными способами:
в виде

последовательности байтов
в виде символов и строк
с использованием форматных преобразований
Для каждого

вида операций определен свой набор функций.
ВВОД/ВЫВОД В ПОТОК.Ввод/вывод в поток можно осуществлять различными способами:в виде последовательности байтовв виде символов и строкс использованием

Слайд 14Ввод/вывод в поток.
Операции ввода/вывода выполняются, начиная с текущей позиции потока,

определяемой положением указателя потока.
Указатель устанавливается при открытии на начало или

конец файла (в соответствии с режимом открытия) и изменяется автоматически после каждой операции ввода/вывода.

Текущее положение указателя можно получить с помощью функций ftell и fgetpos и задать явным образом с помощью функций fseek и fsetpos.

Эти функции нельзя использовать для стандартных потоков.

Ввод/вывод в поток.Операции ввода/вывода выполняются, начиная с текущей позиции потока, определяемой положением указателя потока.Указатель устанавливается при открытии

Слайд 15Ввод/вывод в поток.
Основные функции ввода/вывода потока :

Ввод/вывод в поток.Основные функции ввода/вывода потока :

Слайд 16Ввод/вывод в поток.
Основные функции ввода/вывода потока :

Ввод/вывод в поток.Основные функции ввода/вывода потока :

Слайд 17ЗАКРЫТИЕ ПОТОКА.
Поток закрывается либо при завершении программы, либо явным образом

с помощью функции fclose:
int fclose(FILE*);
Перед закрытием потока информация из связанных

с ним буферов выгружается на диск.

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

ЗАКРЫТИЕ ПОТОКА.Поток закрывается либо при завершении программы, либо явным образом с помощью функции fclose:int fclose(FILE*);Перед закрытием потока

Слайд 18ОБРАБОТКА ОШИБОК.
Функции работы с потоком возвращают значения, которые рекомендуется анализировать

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

или чтении из потока.

При работе с файлами часто используются функции feof и ferror.

ОБРАБОТКА ОШИБОК.Функции работы с потоком возвращают значения, которые рекомендуется анализировать в программе и обрабатывать ошибочные ситуации.например, при

Слайд 19Обработка ошибок.
int feof (FILE*)

возвращает не равное нулю значение, если достигнут

конец файла, в противном случае 0
int ferror(FILE*)

возвращает не равное нулю

значение, если обнаружена ошибка ввода/вывода, в противном случае 0
Обработка ошибок.int feof (FILE*)возвращает не равное нулю значение, если достигнут конец файла, в противном случае 0int ferror(FILE*)возвращает

Слайд 20Пример работы с потоками.
Постановка задачи
В файле хранятся сведения о мониторах:


тип, оптовая и розничная цены и примечание.
Данные в каждой строке

записаны единообразно:
20 символов ― тип монитора;
5 символов ― целое число, представляющее оптовую цену;
5 символов ― целое число, представляющее и розничную цену;
40 символов ― примечание.
Необходимо:
построчно считать данные из текстового файла в буферную переменную s;
сформировать из них структуру mon;
записать mon в двоичном режиме в выходной файл;
считать из этого файла произвольную запись.
Пример работы с потоками.Постановка задачиВ файле хранятся сведения о мониторах: тип, оптовая и розничная цены и примечание.Данные

Слайд 21Пример работы с потоками.
#include
#include
#include
#include


int main(){
FILE *fi, *fo;
if((fi = fopen("d:\\temp\\file.txt", "r")) == 0){
cout

" Ошибка открытия входного файла "; return 1;}
if((fo = fopen("d:\\temp\\binfile.out", "w+b")) == 0){
cout << " Ошибка открытия выходного файла "; return 1;}
const int dl = 80;
char s[dl];
struct{
char type[20];
int opt, rozn;
char comm[40];
}mon;
int kol = 0; // Количество записей в файле
Пример работы с потоками.#include #include #include #include int main(){	FILE *fi, *fo;	if((fi = fopen(

Слайд 22Пример работы с потоками.
while (fgets(s, dl, fi)){
// Преобразование строки в

структуру:
strncpy(mon.type, s, 19);
mon.type[19]='\0';
mon.opt = atoi(&s[20]); // Описание atoi

см. в след. разделе
mon.rozn = atoi(&s[25]);
strncpy(mon.comm, &s[30], 40);
fwrite(&mon, sizeof mon, 1, fo);
kol++;
}
fclose(fi);
Пример работы с потоками.while (fgets(s, dl, fi)){			// Преобразование строки в структуру:		strncpy(mon.type, s, 19);		mon.type[19]='\0';		mon.opt = atoi(&s[20]);

Слайд 23Пример работы с потоками.
cout

cin >> i; // Номер записи
if (i >= kol){cout

Запись не существует "; return 1;}
// Установка указателя текущей позиции файла на запись i:
fseek(fo, (sizeof mon)*i, SEEK_SET);
fread(&mon, sizeof mon, 1, fo);
cout << "mon.type " << mon.type << " opt " << mon.opt
<< " rozn " << mon.rozn << endl;
fclose(fo);
return 0;
}
Пример работы с потоками.cout > i;	// Номер записи	if (i >= kol){cout

Слайд 24Строка представляет собой массив символов, заканчивающийся нуль-символом.
Функции работы со строками

и символами

Строка представляет собой массив символов, заканчивающийся нуль-символом.Функции работы со строками и символами

Слайд 25ФУНКЦИИ РАБОТЫ СО СТРОКАМИ И СИМВОЛАМИ.
В C++ есть две возможности

работы со строками:
функции, унаследованные из библиотеки С (заголовочный файл

или ).
библиотечный класс C++ string, предоставляющий более широкие возможности представления, обработки и контроля строк.
ФУНКЦИИ РАБОТЫ СО СТРОКАМИ И СИМВОЛАМИ.В C++ есть две возможности работы со строками:функции, унаследованные из библиотеки С

Слайд 26Функции работы со строками.
Библиотека С содержит функции :
копирования строк (strcpy,

strncpy)
сравнения строк (strcmp, strncmp)
объединения строк (strcat, strncat)
поиска подстроки (strstr)
поиска вхождения

символа (strchr, strrchr, strpbrk)
определения длины строки (strlen)
и другие
Функции работы со строками.Библиотека С содержит функции :копирования строк (strcpy, strncpy)сравнения строк (strcmp, strncmp)объединения строк (strcat, strncat)поиска

Слайд 27Функции работы со строками.
полезные функции преобразования строк в числа (файлы

и ):
Пробелы и табуляции в начале строки пропускаются.


Преобразование прекращается при встрече недопустимого символа или конца строки.
Если строку нельзя преобразовать в число, возвращается 0.
Если число выходит за пределы диапазона данного типа, переменной errno (заголовочный файл ) присваивается значение ERANGE и возвращается допустимое число.

обратные преобразования можно сделать с помощью функции sprintf

Функции работы со строками.полезные функции преобразования строк в числа (файлы и ):Пробелы и табуляции в начале строки

Слайд 28Функции работы со строками.
Пример:
(программа заполняет массив типа double из строки)
#include


#include
#include
int main(){
char s[] = "2,

38.5, 70, 0, 0, 1", *p = s;
double m[10];
int i = 0;
do{
m[i++] = atof(p);
if (i>9) break;
} while(p = strchr(p, ','), p++);
for( int k = 0; kreturn 0;
}


Слайд 29Функции работы с символами.
функции проверки на принадлежность символа множеству (файлы

и ):

Функции работы с символами.функции проверки на принадлежность символа множеству (файлы и ):

Слайд 30Функции работы с символами.
Для каждой из перечисленных функций есть ее

аналог для многобайтных символов типа wchar_t, содержащий в названии букву

w

Функции принимают величину типа int и возвращают значение true, если условие выполняется

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

Слайд 31Строка представляет собой массив символов, заканчивающийся нуль-символом.
Математические функции

Строка представляет собой массив символов, заканчивающийся нуль-символом.Математические функции

Слайд 32МАТЕМАТИЧЕСКИЕ ФУНКЦИИ.
C++ унаследовал из С стандартные математические функции, описание которых

находится в заголовочных файлах ().
Они позволяют получить:
абсолютное значение (abs,

fabs)
округленное число (ceil, floor)
квадратный корень (sqrt)
степень (pow)
значения тригонометрических функций (sin, cos, tan, sinh, cosh, tanh, asin, acos, atan, atan2)
экспоненту (ехр)
логарифм (log, log10)
дробную и целую части числа (modf)
остаток от деления (fmod)
и другие
МАТЕМАТИЧЕСКИЕ ФУНКЦИИ.C++ унаследовал из С стандартные математические функции, описание которых находится в заголовочных файлах ().Они позволяют получить:абсолютное

Обратная связь

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

Email: Нажмите что бы посмотреть 

Что такое TheSlide.ru?

Это сайт презентации, докладов, проектов в PowerPoint. Здесь удобно  хранить и делиться своими презентациями с другими пользователями.


Для правообладателей

Яндекс.Метрика