Главная » Просмотр файлов » Керниган и Ритчи - Язык программирования Си

Керниган и Ритчи - Язык программирования Си (793773), страница 60

Файл №793773 Керниган и Ритчи - Язык программирования Си (Керниган и Ритчи - Язык программирования Си) 60 страницаКерниган и Ритчи - Язык программирования Си (793773) страница 602019-04-24СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

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

Формат ввода для float состоит из необязательногознака, строки цифр, возможно с десятичной точкой, и необязательного порядка, состоящего из Еили е и целого, возможно со знакомpзначение указателя в виде, в котором printf ("%p") его напечатает; void *nзаписывает в аргумент число символов, прочитанных к этому моменту в этом вызове; int *.Никакого чтения ввода не происходит. Счетчик числа введенных элементов не увеличивается[…]выбирает из ввода самую длинную непустую строку, состоящую из символов, заданных вквадратных скобках; char *.

В конец строки добавляется '\0'. Спецификатор вида []...]включает ] в задаваемое множество символов[^…]выбирает из ввода самую длинную непустую строку, состоящую из символов, не входящих взаданное в скобках множество. В конец добавляется '\0'. Спецификатор вида [^]...]включает ] в задаваемое множество символов%обычный символ %; присваивание не делаетсяВ 1.4. Функции ввода-вывода символовint fgetc(FILE *stream)fgetc возвращает следующий символ из потока stream в виде unsigned char (переведенную вint) или EOF, если исчерпан файл или обнаружена ошибка.char *fgets(char *s, int n, FILE *stream)fgets читает не более n-1 символов в массив s, прекращая чтение, если встретился символ новойстроки, который включается в массив; кроме того, записывает в массив '\0'.

Функция fgetsвозвращает s или, если исчерпан файл или обнаружена ошибка, NULL.int fputc(int с, FILE *stream)fputc пишет символ с (переведенный в unsigned char) в stream. Возвращает записанныйсимвол или EOF в случае ошибки.int fputs(const char *s, FILE *stream)fputs пишет строку s (которая может не иметь '\n') в stream; возвращает неотрицательное целоеили EOF в случае ошибки.int getc(FILE *stream)getc делает то же, что и fgetc, но в отличие от последней, если она — макрос, stream можетбраться более одного раза.int getchar(void)getchar() делает то же, что getc(stdin).char *gets(char *s)gets читает следующую строку ввода в массив s, заменяя символ новой строки на '\0'. Возвращаетs или, если исчерпан файл или обнаружена ошибка, NULL.int putc(int с, FILE *stream)putc делает то же, что и fputc, но в отличие от последней, если putc — макрос, значение streamможет браться более одного раза.int putchar(int с)putchar(c) делает то же, что putc(c, stdout).int puts(const char *s)puts пишет строку s и символ новой строки в stdout.

Возвращает EOF в случае ошибки, илинеотрицательное значение, если запись прошла нормально.int ungetc(int с, FILE *stream)ungetc отправляет символ с (переведенный в unsigned char) обратно в stream; приследующем чтении из stream он будет получен снова. Для каждого потока вернуть можно не болееодного символа. Нельзя возвращать EOF. В качестве результата ungetc выдает отправленный назадсимвол или, в случае ошибки, EOF.В 1.5.

Функции прямого ввода-выводаsize_t fread(void *ptr, size_t size, size_t nobj, FILE *strem)fread читает из потока stream в массив ptr не более nobj объектов размера size. Онавозвращает количество прочитанных объектов, которое может быть меньше заявленного. Дляиндикации состояния после чтения следует использовать feof и ferror.size_t fwrite(const void *ptr, size_t size, size_t nobj, FILE «stream)fwrite пишет из массива ptr в stream nobj объектов размера size; возвращает числозаписанных объектов, которое в случае ошибки меньше nobj.В 1.6.

Функции позиционирования файлаint fseek(FILE *stream, long offset, int origin)fseek устанавливает позицию для stream; последующее чтение или запись будет производиться сэтой позиции. В случае бинарного файла позиция устанавливается со смещением offset —относительно начала, если origin равен SEEK_SET; относительно текущей позиции, если originравен SEEK_CUR; и относительно конца файла, если origin равен SEEK_END. Для текстового файлаoffset должен быть нулем или значением, полученным с помощью вызова функции ftell. Приработе с текстовым файлом origin всегда должен быть равен SEEK_SET.long ftell(FILE *stream)ftell возвращает текущую позицию потока stream или -1L, в случае ошибки.void rewind(FILE *stream)rewind (fp) делает то же, что и fseek(fp, 0L, SEEK_SET); clearerr(fp).int fgetpos(FILE *stream, fpos_t *ptr)fgetpos записывает текущую позицию потока stream в *ptr для последующего использования еев fsetpos.

Тип fpos_t позволяет хранить такого рода значения. В случае ошибки fgetposвозвращает ненулевое значение.int fsetpos(FILE *stream, const fpos_t *ptr)fsetpos устанавливает позицию в stream, читая ее из *ptr, куда она была записана ранее спомощью fgetpos. В случае ошибки fsetpos возвращает ненулевое значение.В 1.7. Функции обработки ошибокМногие функции библиотеки в случае ошибки или конца файла устанавливают индикаторы состояния. Этииндикаторы можно проверять и изменять.

Кроме того, целое выражение errno (объявленное в <errno.h>)может содержать номер ошибки, который дает дополнительную информацию о последней из обнаруженныхошибок.void clearerr(FILE *stream)clearerr очищает индикаторы конца файла и ошибки потока stream.int feof(FILE *stream)feof возвращает ненулевое значение, если для потока stream установлен индикатор конца файла.int ferror(FILE *stream)ferror возвращает ненулевое значение, если для потока stream установлен индикатор ошибки.void perror(const char *s)perror(s) печатает s и зависимое от реализации сообщение об ошибке, соответствующее целомузначению в errno, т.

е. делает то же, что и обращение к функции fprintf видаfprintf(stderr, "%s: %s\n", s, " сообщение обошибке")См. strerror в параграфе ВЗ.В 2. Проверки класса символа: <ctype.h>Заголовочный файл <ctype.h> объявляет функции, предназначенные для проверок символов. Аргументкаждой из них имеет тип int и должен либо представлять собой EOF, либо быть значением unsignedchar, приведенным к int; возвращаемое значение тоже имеет тип int. Функции возвращают ненулевоезначение ("истина"), когда аргумент с удовлетворяет описанному условию или принадлежит указанномуклассу символов, и нуль в противном случае.isalnum(c)— isalpha(c) или isdigit (с) есть истинаisalpha(c)— isupper(c) или islower(c) есть истинаiscntrl(c)— управляющий символisdigit(c)— десятичная цифраisgraph(c)— печатаемый символ кроме пробелаislower(c)— буква нижнего регистраisprint(c)— печатаемый символ, включая пробелispunct(c)— печатаемый символ кроме пробела, буквы или цифрыisspace(c)— пробел, смена страницы, новая строка, возврат каретки, табуляция, вертикальнаятабуляцияisupper(c)— буква верхнего регистраisxdigit(c) — шестнадцатеричная цифраВ наборе семибитовых ASCII-символов печатаемые символы находятся в диапазоне от 0x20 (' ') до Ох7Е ('—'); управляющие символы — от 0 (NUL) до 0x1F (US) и Ox7F (DEL).Помимо перечисленных есть две функции, приводящие буквы к одному из регистров:int tolower(int с)— переводит с на нижний регистр;int toupper(int с)— переводит с на верхний регистр.Если с — буква на верхнем регистре, то tolower(с) выдаст эту букву на нижнем регистре; в противномслучае она вернет с.

Если с — буква на нижнем регистре, то toupper(с) выдаст эту букву на верхнемрегистре; в противном случае она вернет с.В 3. Функции, оперирующие со строками: <string. h>Имеются две группы функций, оперирующих со строками. Они определены в заголовочном файле<string.h>. Имена функций первой группы начинаются с букв str, второй — с mem. Если копированиеимеет дело с объектами, перекрывающимися по памяти, то, за исключением memmove, поведение функцийне определено.

Функции сравнения рассматривают аргументы как массивы элементов типа unsignedchar.В таблице B 3 переменные s и t принадлежат типу char *, cs и ct — типу const char *, n — типуsize_t, а с — значение типа int, приведенное к типу char.В 3. Функции, оперирующие со строками: <string. h>char *strcpy(s, ct)копирует строку ct в строку s, включая '\0'; возвращает schar *strncpy(s, ct, n)копирует не более n символов строки ct в s; возвращает s.

Дополняетрезультат символами '\0', если символов в ct меньше nchar *strcat(s, ct)приписывает ct к s; возвращает schar *strncat(s, ct, n)приписывает не более n символов ct к s, завершая s символом '\0';возвращает schar strcmp(cs, st)сравнивает cs и ct; возвращает <0, если cs<ct, 0, если cs==ct, и >0,если cs>ct15char strncmp(cs, ct)сравнивает не более n символов cs и ct; возвращает <0, если cs<ct, 0,если cs==ct, и >0, если cs>ctchar *strchr(cs, c)возвращает указатель на первое вхождение с в cs или, если такового неоказалось, NULLchar *strrchr(cs, c)возвращает указатель на последнее вхождение с в cs или, еслитакового не оказалось, NULLsize_t strspn(cs, ct)возвращает длину начального сегмента cs, состоящего из символов,входящих в строку ctsize_t strcspn(cs, ct)возвращает длину начального сегмента cs, состоящего из символов, не15Здесь и ниже под такими выражениями как cs<ct не следует понимать арифметическое сравнение указателей.Подразумевается лексикографическое сравнение, т.

с. cs меньше (больше) ct, если первый несовпавший элемент в csарифметически меньше (больше) соответствующего элемента из ct. — Примеч. ред.входящих в строку ctchar *strpbrk(cs, ct)возвращает указатель в cs на первый символ, который совпал с однимиз символов, входящих в ct, или, если такового не оказалось, NULLchar *strstr(cs, ct)возвращает указатель на первое вхождение ct в cs или, если таковогоне оказалось, NULLsize_t strlen(cs)возвращает длину cschar * strerror(n)возвращает указатель на зависящуюсоответствующую номеру ошибки nchar * strtok(s, ct)ищет в s лексему, ограниченную символами из ct; более подробноеописание этой функции см.

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

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

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

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