Брайан Керниган - Язык программирования Си. Издание 3-е, исправленное

Тут можно читать онлайн Брайан Керниган - Язык программирования Си. Издание 3-е, исправленное - бесплатно полную версию книги (целиком) без сокращений. Жанр: comp-programming, издательство Невский Диалект, год 2001. Здесь Вы можете читать полную версию (весь текст) онлайн без регистрации и SMS на сайте лучшей интернет библиотеки ЛибКинг или прочесть краткое содержание (суть), предисловие и аннотацию. Так же сможете купить и скачать торрент в электронном формате fb2, найти и слушать аудиокнигу на русском языке или узнать сколько частей в серии и всего страниц в публикации. Читателям доступно смотреть обложку, картинки, описание и отзывы (комментарии) о произведении.
  • Название:
    Язык программирования Си. Издание 3-е, исправленное
  • Автор:
  • Жанр:
  • Издательство:
    Невский Диалект
  • Год:
    2001
  • Город:
    Санкт-Петербург
  • ISBN:
    0-13-110362-8
  • Рейтинг:
    4.11/5. Голосов: 91
  • Избранное:
    Добавить в избранное
  • Отзывы:
  • Ваша оценка:
    • 80
    • 1
    • 2
    • 3
    • 4
    • 5

Брайан Керниган - Язык программирования Си. Издание 3-е, исправленное краткое содержание

Язык программирования Си. Издание 3-е, исправленное - описание и краткое содержание, автор Брайан Керниган, читайте бесплатно онлайн на сайте электронной библиотеки LibKing.Ru

Книга широко известных авторов, разработчиков языка Си, переработанная и дополненная с учетом стандарта ANSI для языка Си, 2-е английское издание которой вышло в 1988 году, давно стала классикой для всех изучающих и/или использующих как Си, так и Си++. Русский перевод этой книги впервые был выпущен изд- вом "Финансы и статистика" в 1992 г. и с тех пор пользуется неизменным спросом читателей.

Для настоящего третьего русского издания перевод заново сверен с оригиналом, в него внесены некоторые поправки, учитывающие устоявшиеся за прошедшие годы изменения в терминологии, а так же учтены замечания, размещенные автором на странице http://cm.bell-labs.com/cm/cs/cbook/2ediffs.html.

Для программистов, преподавателей и студентов.

Издание подготовлено при участии издательства "Финансы и статистика"

Язык программирования Си. Издание 3-е, исправленное - читать онлайн бесплатно полную версию (весь текст целиком)

Язык программирования Си. Издание 3-е, исправленное - читать книгу онлайн бесплатно, автор Брайан Керниган
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

• Точка, отделяющая указатель ширины поля от указателя точности.

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

• Модификаторы h, l(буква ell) или L. "h" указывает на то, что соответствующий аргумент должен печататься как short или unsigned short ; "l" сообщает, что аргумент имеет тип long или unsigned long ; "L" информирует, что аргумент принадлежит типу long double .

Ширина, или точность, или обе эти характеристики могут быть специфицированы с помощью *; в этом случае необходимое число "извлекается" из следующего аргумента, который должен иметь тип int (в случае двух звездочек используются два аргумента).

Символы-спецификаторы и разъяснение их смысла приведены в таблице B-1. Если за %нет правильного символа-спецификатора, результат не определен.

int printf(const char *format, ...);

printf(...) полностью эквивалентна fprintf (stdout, ...).

int sprintf(char *s, const char *format, ...)

sprintfдействует так же, как и printf , только вывод осуществляет в строку s , завершая ее символом '\0'. Строка s должна быть достаточно большой, чтобы вмещать результат вывода. Возвращает количество записанных символов, в число которых символ '\0' не входит.

int vprintf (const char *format, va_list arg)

int vfprintf (FILE *stream, const char *format, va_list arg)

int vsprintf (char *s, const char *format, va_list arg)

Функции vprintf, vfprintfи vsprintfэквивалентны соответствующим printf - функциям с той лишь разницей, что переменный список аргументов представлен параметром arg , инициализированным макросом va_start и, возможно, вызовами va_arg (см. в B7 описание ).

Таблица B-1. Преобразования printf

Символ Тип аргумента; вид печати
d, i int; знаковая десятичная запись
o unsigned int; беззнаковая восьмеричная запись (без 0 слева)
x, X unsigned int; беззнаковая шестнадцатеричная запись (без 0x или 0X слева), в качестве цифр от 10 до 15 используются abcdef для x и ABCDEF для X
u unsigned int; беззнаковое десятичное целое
c int; единичный символ после преобразования в unsigned char
s char *; символы строки печатаются, пока не встретится '\0' или не исчерпается количество символов, указанное точностью
f double; десятичная запись вида [-]mmm.ddd, где количество d специфицируется точностью. По умолчанию точность равна 6; нулевая точность подавляет печать десятичной точки
e, E double; десятичная запись вида [-]m.dddddde±xx или запись вида [-]m.ddddddE±xx, где количество d специфицируется точностью. По умолчанию точность равна 6; нулевая точность подавляет печать десятичной точки
g, G double; используется %eи %E, если порядок меньше -4 или больше или равен точности; в противном случае используется %f. Завершающие нули и точка в конце не печатаются
p void *; печатает в виде указателя (представление зависит от реализации
n int *; число символов, напечатанных к данному моменту данным вызовом printf , записывается в аргумент. Никакие другие аргументы не преобразуются
% никакие аргументы не преобразуются; печатается %

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

Функции scanfимеют дело с форматным преобразованием при вводе

int fscanf(FILE *stream, const char *format, ...);

fscanfчитает данные из потока stream под управлением format и преобразованные величины присваивает по порядку аргументам, каждый из которых должен быть указателем. Завершает работу, если исчерпался формат. Выдает EOF по исчерпании файла или перед любым преобразованием, если возникла ошибка; в остальных случаях функция возвращает количество преобразованных и введенных элементов.

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

• пробелы и табуляции, которые игнорируются;

• обычные символы (кроме %), которые ожидаются в потоке ввода среди символов, отличных от символов-разделителей;

• спецификации преобразования, состоящие из %; необязательного знака *, подавляющего присваивание; необязательного числа, специфицирующего максимальную ширину поля; необязательных h, lили L, указывающих размер присваиваемого значения, и символа-спецификатора преобразования.

Спецификация преобразования определяет преобразование следующего поля ввода. Обычно результат размещается в переменной, на которую указывает соответствующий аргумент. Однако если присваивание подавляется с помощью знака *, как, например, в %*s, то поле ввода просто пропускается, и никакого присваивания не происходят. Поле ввода определяется как строка символов, отличных от символов-разделителей; при этом ввод строки прекращается при выполнении любого из двух условий: если встретился символ-разделитель или если ширина поля (в случае, когда она указана) исчерпана. Из этого следует, что при переходе к следующему полю scanf может "перешагивать" через границы строк, поскольку символ новой строки является символом-разделителем. (Под символами-разделителями понимаются символы пробела, табуляции, новой строки, возврата каретки, вертикальной табуляции и смены страницы.)

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

Символам-спецификаторам d, i, n, o, uи xможет предшествовать h, если аргумент есть указатель на short (а не int ) или l(буква ell), если аргумент есть указатель на long . Символам-спецификаторам e, fи gможет предшествовать l, если аргумент - указатель на double (а не float ), или L, если аргумент - указатель на long double .

int scanf (const char *format, ...);

scanf(...) делает то же, что и fscanf (stdin, ...).

int sscanf (const char *s, const char *format, ...);

sscanf(s, ...) делает то же, что и scanf (...), только ввод символов осуществляет из строки s .

Читать дальше
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать


Брайан Керниган читать все книги автора по порядку

Брайан Керниган - все книги автора в одном месте читать по порядку полные версии на сайте онлайн библиотеки LibKing.




Язык программирования Си. Издание 3-е, исправленное отзывы


Отзывы читателей о книге Язык программирования Си. Издание 3-е, исправленное, автор: Брайан Керниган. Читайте комментарии и мнения людей о произведении.


Понравилась книга? Поделитесь впечатлениями - оставьте Ваш отзыв или расскажите друзьям

Напишите свой комментарий
x