Форматный ввод-вывод (Мини-учебник с ejudge = Чернокнижка), страница 2

PDF-файл Форматный ввод-вывод (Мини-учебник с ejudge = Чернокнижка), страница 2 Практика расчётов на ПЭВМ (37217): Книга - 3 семестрФорматный ввод-вывод (Мини-учебник с ejudge = Чернокнижка) - PDF, страница 2 (37217) - СтудИзба2019-05-08СтудИзба

Описание файла

Файл "Форматный ввод-вывод" внутри архива находится в папке "Мини-учебник с ejudge = Чернокнижка". PDF-файл из архива "Мини-учебник с ejudge = Чернокнижка", который расположен в категории "". Всё это находится в предмете "практика расчётов на пэвм" из 3 семестр, которые можно найти в файловом архиве МГУ им. Ломоносова. Не смотря на прямую связь этого архива с МГУ им. Ломоносова, его также можно найти и в других разделах. .

Просмотр PDF-файла онлайн

Текст 2 страницы из PDF

Спецификаторы используются для генерации текстового представления знакового вещественного числа с показательной частью. Мантисса и показательзаписываются в шестнадцатеричной системе счисления. Сгенерированный текст имеет вид±0X h.h p P ± hq , где X — это буква x для преобразования %a и буква X для преобразования%A; h — шестнадцатеричная цифра 0—9 или a—f для преобразования %a или шестнадцатеричная цифра 0—9, A—F для преобразования %A; P — это буква p для преобразования %a ибуква P для преобразования %A.

Сгенерированный текст содержит одну шестнадцатеричнуюцифру, точку, затем p шестнадцатеричных цифр дробной части, причём точность по умолчанию достаточна для точного представления числа по основанию 2, если оно существует,либо достаточно велико, чтобы представить все биты числа типа double (long double,если указан квалификатор L). Шестнадцатеричная цифра перед точкой неопределена, есличисло ненормализовано, и не равна нулю, если число нормализовано.Результат преобразованияОператорprintf("%a\n", 0.0);0x0p+0printf("%a\n", 16.125);0x1.02p+4printf("%A\n", 1.45e+13);0X1.A6016B2DP+43printf("%La\n", -0.1L);-0xc.ccccccccccccccdp-7printf("%a\n", 1.0);0x1p+0Спецификатор %n.

Спецификатор используется, чтобы сохранить количество сгенерированных символов к тому месту, где в строке формата указан данный спецификатор. Значением следующего аргумента функции форматного преобразования должен быть адрес переменной соответствующего типа.Сохранённое в x значе- Результат преобразоваОператорниенияprintf("123%n4", &x); 31234Спецификатор %p. Спецификатор используется для генерации внешнего представлениянетипизированного указателя (типа void*). Выполняемое преобразование зависит от реализации.ОператорРезультат преобразования (пример)printf("%p\n", (void*) &x); 0xbffffa94Спецификатор %s.

Спецификатор используется для генерации последовательностисимволов из значений, хранящихся в строке-аргументе функции. Преобразование генерирует не более чем p символов до символа конца строки ’\0’, не включая его. Символ концастроки не учитывается при подсчёте количества генерируемых символов.ОператорРезультат преобразованияprintf("%s", "hello");helloprintf("%.2s", "hello");heprintf("%.10s", "hello");helloprintf("<%-7s>", "hello");<hello >printf("%2s", "hello");helloprintf("<%7.2s>\n", "hello");<he>Спецификатор %%. Спецификатор используется для генерации знака процента (%).6Операторprintf("%%");Результат преобразования%1.2 Функции печати#include <stdio.h>intintintintprintf(const char *format, ...);fprintf(FILE *stream, const char *format, ...);sprintf(char *str, const char *format, ...);snprintf(char *str, size_t size, const char *format, ...);#include <stdarg.h>intintintintvprintf(const char *format, va_list ap);vfprintf(FILE *stream, const char *format, va_list ap);vsprintf(char *str, const char *format, va_list ap);vsnprintf(char *str,size_t size, const char *format, va_list ap);Функции форматного вывода форматируют выходной текст в соответствии с описанным выше форматом.

Функции printf и vprintf выводят на стандартный поток вывода, fprintf и vfprintf выводят в заданный дескриптор потока, sprintf, snprintf,vsprintf, vsnprintf выводят в символьную строку str.Функции vprintf, vfprintf, vsprintf, vsnprintf эквивалентны функциямprintf, fprintf, sprintf, snprintf соответственно, за исключением того, что онивызываются с параметром va_list (список аргументов) вместо переменного количествааргументов. Данные функции не вызывают макрос va_end, значение ap после вызованеопределено.

Вызывающая функция сама должна вызвать макрос va_end(ap).Функции возвращают количество напечатанных символов (не считая завершающий’\0’, используемый при выводе в строки). snprintf и vsnprintf не записывают болеечем size байт (включая завершающий ’\0’). Даже в случае, когда места в строке оказалось недостаточно, функции snprintf и vsnprintf возвращают количество символов(не считая ’\0’, которое было бы записано, если бы строка имела достаточный размер.Для функций snprintf и vsnprintf допускается указывать параметр size, равный0, и параметр str, равный NULL. В этом случае функции возвращают длину строки, котораяполучилась бы при данном форматном выводе.1.3 Строка формата функций сканированияДля функций сканирования литеральный текст в форматной строке должен соответствовать следующим символам во входном тексте.

Пробельные символы в форматной строкедолжны соответствовать последовательности максимальной длины из нуля или более пробельных символов во входном тексте. Все спецификаторы преобразования, кроме n (который не использует входной текст) определяют шаблон, которому должны соответствоватьодин или более следующих символов во входном тексте. Работа каждого спецификаторапреобразования, кроме c, n и [ начинается с пропуска пробельных символов во входномтексте.Функция сканирования завершает работу при следующих условиях:• она достигает конца форматной строки;7• она не может получить очередной символ входного текста (ошибка ввода);• преобразование заканчивается неудачей (ошибка сопоставления).Функция сканирования возвращает EOF (определённый в <stdio.h>), если ошибкаввода происходит до первого преобразования.

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

Например,scanf("%i", &i)scanf("%f", &f)прочитывает 0X из поля 0XZпрочитывает 3.2E из поля 3.2EZСпецификация преобразования, как правило, конвертирует символы входного потока,удовлетворяющие формату спецификации, в соответствующее внутреннее представление.Соответствующим параметром функции сканирования при этом должен быть адрес объектасоответствующего типа. Преобразование конвертирует текстуальное представление значения во внутреннее и сохраняет его в указанном объекте. На рис.

2 показана синтаксическаядиаграмма спецификаций преобразования функций сканирования.scanf_format :h l L0−9c f n u d g j x e G p X E i s %*[^]any char except ], 0]Рис. 2: Синтаксис спецификаций преобразования функции scanf (C90)Флаги. После знака процента % может следовать знак *, означающий, что последующийспецификатор преобразования не должен сохранять преобразованное значение.Ширина поля. После флагов может идти спецификация ширины поля, которая определяет максимальное количество входных символов, которые будут использоваться в преобразовании, не учитывая пробельных символов, которые могут быть пропущены согласноспецификации преобразования перед этим.Спецификатор преобразования.

За шириной поля должен следовать спецификаторпреобразования: либо односимвольный код, либо множество сканирования, перед которымможет быть указан одно- или двухсимвольный квалификатор преобразования. Каждый спецификатор преобразования определяет тип требуемого аргумента функции сканирования ито, как функция сканирования интерпретирует текстовую последовательность и преобразовывает её во внутренний формат. Целочисленные и вещественные преобразования такжеопределяют, какая библиотечная функция будет вызвана для выполнения преобразования, икакое основание системы счисления подразумевается для текстового представления.

Основание системы счисления — это аргумент base функций strtol, strtoul. В таблице 3перечислены все определённые стандартом комбинации и их свойства.В описании спецификатора преобразования или множества сканирования определено егоповедение, не отражённое в таблице. В примерах, которые приводятся после описания каждого спецификатора преобразования, функция sscanf использует для форматного преобразования только подчёркнутые символы.Спецификатор %c. Спецификатор преобразования %c используется для записи входныхсимволов в массив элементов типа char. Если ширина поля ввода w не задана, используется8Спецификаторdhdhhdldllde, E, f, g, Gle,lE,lf,lg,lGLe,LE,Lf,Lg,LGihihhilillinhnhhnlnllnohohholollouhuhhulullux, Xhx, hXhhx, hhXlx, lXllx, llXpcs[...]%Тип аргументаint *xshort *xsigned char *xlong *xlong long *xfloatdoublelong doubleint *xshort *xsigned char *xlong *xlong long *xint *xshort *xsigned char *xlong *xlong long *xunsigned int *xunsigned short *xunsigned char *xunsigned long *xunsigned long long *xunsigned int *xunsigned short *xunsigned char *xunsigned long *xunsigned long long *xunsigned int *xunsigned short *xunsigned char *xunsigned long *xunsigned long long *xvoid **xchar c[]char x[]char x[]нетФункция преобразованияstrtolstrtolstrtolstrtolstrtollstrtodstrtodstrtoldstrtolstrtolstrtolstrtolstrtollstrtoulstrtoulstrtoulstrtoulstrtoullstrtoulstrtoulstrtoulstrtoulstrtoullstrtoulstrtoulstrtoulstrtoulstrtoullТаблица 3: Спецификаторы преобразования функции scanf9Основание1010101010101010000008888810101010101616161616значение по умолчанию w = 1.

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