Главная » Просмотр файлов » Г. Шилдт - Полный справочник по C++

Г. Шилдт - Полный справочник по C++ (1109478), страница 103

Файл №1109478 Г. Шилдт - Полный справочник по C++ (Г. Шилдт - Полный справочник по C++) 103 страницаГ. Шилдт - Полный справочник по C++ (1109478) страница 1032019-04-28СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 103)

Вторая библиотека содержит классы и является объектно-ориентированной. В этой части мы рассматриваем библиотеку стандартных функций, а в ~етвертой — библиотеку классов. Б иблиотека стандаргг1ых функций разделяется на следующие части. ° Функции ввода-выводя ° Функции обработки строк и символов ° Математические функции ° Функции ввода-вывода времени и даты, а также локализации ° Функции динамического распределения памяти ° Вспомогательные функции ° Функции для работы с расширенными символами Последняя категория функций добавлена в стандарт языка С в 1995 году и впоследствии унаследована языком С++.

Она позволяет создавать расширенные (нсзьак е) эквиваленты нескольких библиотечных функций. Честно говоря, применение расширенных символов крайне ограничено, и в языке С++ есть более эффективный способ, который описан в главе 31. Стандарт языка С99 добавил в библиотеку функций несколько новых элементов. Некоторые из них, например, функции для работы с комплексными числами и макросы обобщенного типа, являются математическими и дублируют свойства, которые уже есть в языке С++. В любом случае библиотечные функции, определенные стандартом С99, несовместимы с языком С++.

По этой причине мы не рассматриваем в нашей книге стандартную библиотеку языка С, соответствующую стандарту С99. И последнее: все компиляторы поддерживают больше функций, чем предусмотрено стандартом языка С++. Обычно дополнительные функции предназначены для обеспечения взаимодействия между программами и операционной системой, а также для реализации лругих машинозависимых операций.

Описание этих функций следует искать в технической документации компилятора. Полный функции Ввода-Вывода языка С спи авочник по В ф 1 е Функция Ьо1 1 Кьпс1ис)е <свесйо> Епс ееое(гтьв *пгеат) Функция йеой() проверяет позицию файлового курсора, чтобы распознать конец файла, связанного с указателем з(геат. Если курсор находится в конце фагьза, возврашается ненулевое значение, в противном случае возврашается нуль. После достижения конца файла последующие операции чтения вернут константу вог, пока не будет вызвана функция геийп()() или евееи(). Функция ееой() особенно полезна при работе с бинарными файлами„поскольку признак конца файла является двоичным целым числом.

Для распознавания конца файла следует вызывать функцию йеой(), а не анализировать значение, возврашаемое функцией яеес() . Зависимые функции: с1еагегг(), йеггог(), реггог(), росс() и яесс(). Функция 1еггог Вьпс1псе <свСЖо> Епс Ееггог(втьв *зттшл) Функция йехгог() анализирует ошибку, связанную с файлом, на который ссылается указатель жгеапь Если никаких ошибок не обнаружено, возвращается нуль, в противном случае возврашается ненулевое значение.

Чтобы определить точную природу ошибки, следует вызвать функцию реггог(). Зависимые функции: с1еагегг(), йеой() и реггог(). Функция й!иФ Мьпс1пс)е <свебйо> 1пе ЕЕ1пап(Г1ЬВ "Мгеат); Если указатель з(геат ~вязан с файлом, открытым для записи, вызов функции ЕЕ1па)х() принудительно записывает содержание буфера в файл, который остается о~крытым. Если функция выполнена успешно, возврашается нуль, в противном случае возврашается константа воя. При нормкзьном завершении программы и переполнении все буфера очишаются автоматически.

Закрытие фаила также сопровождается опустошением буфера, связанного с ним, и записью его содержимого в закрываюшийся файл, Зависимые функции: ес1ове(), еорап(), егеа(((), Еигйсе(), яеес() и расс(). Функция 1деФс ВЕпс1ис)е <свес)1о> Епс Есесс(утье *птат); Функция йяеес() извлекает из вхолного потока жгеат следуюший символ и увеличивает файловый курсор на единицу. Символ считывается как значение типа ппайвпед сваг и преобразуется в целое число.

при обнаружении конца файла функция еяеес() возврашает константу воя. поскольку значение вог являешься целым числом, при работе с бинарными файлами следует использовать функцию еесе(). Если функция ересс() обнаруживает ошибку, Глава 25. Функции ваода-вывода языка С она также возвращает константу еое. При работе с бинарными файлами для анализа ошибок следует применять функцию ееккое(). Зависимые функции. ерове(), деес(), реке() и еореп().

Функция 19е1рое ! Н1пс1ие)е <свМ1о> Епе Едесров(РХЬЕ *з<геот, Еров Е *роппоп) Функция едееров() сохраняет в обьекте, на который ссылается указатель роз)лол, текущее значение файлового курсора. Объект, на который ссылается указатель розулол, должен иметь тип Еров е. Сохраняемое значение оказывается полезным, лишь если в дальнейшем вызывается функция евееров() . При возникновении ошибки функция Едеаров <) ВОЗВРашает положительное число, в противном случае — нуль.

Зависимые функции: Евееров(), Елее)<О и Еке11(). Функция 19еЬ ! * Ипс1ие)е <саЫ1о> снах *едеев(с)1аг мг, 1пе нтл, етье "мгеат) г Функция едеев () считывает не более лииг-1 символов из потока жгеат и помешает их в символьный массив, на который ссылается указатель жг. Символы считываются до тех пор„пока не встретится символ перехода на новую строку либо признак конца файла, либо пока не будет достигнут заданный предел. Вслед за последним считанным символом в массив записывается нулевой байт. Символ перехода на новую строку сохраняется и становится частью массива, адресуемого указателем жг.

В случае успеха функция Едекв<) возвращает указатель Пг, а при неудаче — нулевой указатель. Если при чтении символов происходит ошибка, содержимое массива, адресуемого указателем Мг, становится неопределенным. Поскольку нулевой указатель возвращается и при возникновении ошибки, и при досп<жении конца файла, для выяснения, что же произошло на самом деле, необходимо использовать функции ЕеоЕ < ) илн Еекеох< ) . Зависимые функции: Ерово, Едеев(), деЕв() ираке<).

Функция 1ореп Ипс1ие)е <сесе)1о> Р1ЬЕ "Еореп(сапах с)1ат "~юатЕ, СОПВС с)зат *таде) < Функция Еореп() открывает файл, имя которого задается парах<стром <пате, и возвращает указатель на поток, связанный с этим файлом. Вид операций, которые можно выполнять с этим файлом, задается параметром тое<е. Возможные значения параметра тоде приведены в табл. 25.1. Имя файла должно представлять собой строку символов и не противоречить правилам, установленным операционной системой.

Эта строка может также содержать спецификацию пути к файлу. Если функция Еореп() успешно открыла указанный файл, она возвращает указатель типа яхье. При неудаче возвращается нулевой указатель. Как следует из таблицы„файл может открь<ааться как в текстовом, так и в бинарном режиме. В текстовом режиме может происходить преобразование некоторых символов. Например, символ перехода на новую строку может преобразовываться в комбинацию кодов возврата каретки и перевода строки. В двоичном режиме подобные преобразования не выполняются. Часть )П. Библиотека стандархньп функций Таблица 25.1. Возможные значения параметра гпо<(е функции (орало Пред яазязчаиив Открывает текстовый файл для чтения Создает текстовый файл для записи Записывает информацию в конец существующего текстового файла Открывает бинарный файл для чтения Создает бинарный файл дпя записи Записывает информацию в конец существующего бинарного файла.

Открывает текстовый файл дпя чтения и записи Создает текстовый файл для чтения и записи Открывает текстовый файл для чтения и записи Открывает бинарный файл дпя чтения и записи Создает бинарный файл дпя чтения и записи Открывает бииарныи файл для чтения и записи "а" "гЬ" "иЬ" "аЬ "г+" "и+" "а+" гь+ или г+ь "иь+" или "и+ь" аь+ или а+ь Следующий фрагмент программы показывает, как правильно открывать файл.

втьк *бр; 11 (<ср = горел("Севе", "и">) == щП,Ь] ( ргтпсб("Невозможно открыть файл.~п")т ехэс()т Этот способ позволяет обнаруживать все ошибки, которые могут возникнуть во время открытия файла, например, попытку открыть фаил, защищенный от записи. Если функция горепО открывает файл ши записи, любой существующий файл с укзэанным именем будет стерт, а вместо него будет открыт новый файл.

Если файла с таким именем не существует, он будет создан. Если файл открывается лля чтения, необходимо, чтобы он уже сушествовал, в противном случае произойдет ошибка. Если требуется дописать инфорл<ацию в конец сун<ествуюшего файла, необходимо использовать режим "а". Если такого файла нет, он будет создан. Осуществляя доступ к файлу, открьпому лля чтения и записи, нельзя сразу после операции записи выполнять операцию чтения (и наоборот), не вызвав одну из функций яд1иеь< >, деве)к О, двесров( > нли гем1паО . Исключение составляет файл, открытый для чтения, поскольку прн достижении его конца операцию записи можно выполнять сразу после операции чтения. Зависимые функции: дс1оее<), Дгеакз(), Дыг1се(), рсссО н десс().

Функция 1рппй 1 * Зэпс1ис>е ксвгс(1о> эпс гргэпсг(втье *тггеаяп сопят сьаг 'Гогпют, ...); Глава 25. Функции ввода-вывода языка С Функция дрг1псд(> выводит в поток, связанный с указателем атаке, значения своих аргументов в соответствии со строкойуогта(.Функция возвращает количество реально выведенных символов.

При возникновении ошибки возвращается отрицательноечисло. Количество аргументов может изменяться от нуля до максимального значения, опрелеленного операционной системой. Операции преобразования, заданные в строке формата, и команды вывода идентичны операциям и командам, выполняемым функцией рг1псд(>. Их полное описание содержится в разделе, посвященном функции рг1псд () . Зависимые функции: рг1пед<) и десепдО. Функция 1рц$о * К1пс1ис)е <свес1о> зпс григе()гс сй, Рпе «гггеат) Функция крике() записывает символ сй в текущую позицию потока жгеат, а затем увеличивает файловый курсор на единицу. Хотя по историческим причинам симвсл сй объявляется как переменная целого типа, функция дреке() преобразовывает ее в тип ипв1дпед спек.

Характеристики

Тип файла
DJVU-файл
Размер
7,03 Mb
Тип материала
Высшее учебное заведение

Список файлов книги

Свежие статьи
Популярно сейчас
Зачем заказывать выполнение своего задания, если оно уже было выполнено много много раз? Его можно просто купить или даже скачать бесплатно на СтудИзбе. Найдите нужный учебный материал у нас!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6556
Авторов
на СтудИзбе
299
Средний доход
с одного платного файла
Обучение Подробнее