Аргумент типа float или double, преобразованный в десятичный вид [-] ddd .ddd.
Количество букв d после десятичной точки задает точность аргумента. При необходимости число округляется. Если точность не указана, на печать выводятся шесть цифр; если точность явно задана с помощью символа 0, а символ # не указан, то ни цифры, ни десятичная точка не выводятся e Аргумент типа float или double, преобразованный в десятичный вид в научном
формате [-] d • ddde +dd или [-] d • ddde-dd, где перед десятичной точкой стоит одна цифра, а количество цифр после десятичной точки равно точности аргумента.
Также на сайте polys56.ru можно узнать много интересного на тему http://polys56.ru/catalog
Что означает вообще тема кирпич облицовочный оренбург про это написано на сайте polys56.ru Спасибо сайту за информацию
При необходимости число округляется. Если точность не указана, на печать выводятся шесть цифр; если точность явно задана с помощью символа 0, а символ # не указан, то ни цифры, ни десятичная точка не выводятся E Действует так же, как и спецификатор e, но для вывода показателя степени используется буква E в верхнем регистре g Аргумент типа float или double выводится в стиле d, f или e, в зависимости от того, какой из этих форматов задает максимальную точность с минимальным количеством знаков
Действует так же, как и спецификатор g, но для вывода показателя степени использу
ется буква E в верхнем регистре c На печать выводится символьный аргумент. Нулевые символы игнорируются
Аргумент является строкой (указателем на символ), символы из строки выводятся,
пока не встретится нулевой символ или не будет выведено количество символов, равное точности. Однако, если точность равна 0 или не указана, будут выведены все символы, пока не будет обнаружен нулевой символ p Аргументом является указатель. Его вывод на печать зависит от особенностей реали
зации языка
Аргумент типа unsigned int преобразовывается в десятичный вид
Количество символов, выведенных до текущего момента с помощью функций
printf(), fprintf() и sprintf(), записывается в переменную типа int, на которую ссылается указатель, связанный с аргументом типа int
Нулевая или слишком маленькая ширина поля никогда не приводит к усечению вывода; дополнение вывода нулями или пробелами производится только тогда, когда заданная ширина поля превышает реальную.
Поскольку в языке C нет пользовательских типов в смысле языка C++, в нем нет возможностей для определения форматов вывода для таких классов, как complex, vector или string.
Стандартный поток вывода stdout в языке C соответствует потоку cout. Стандартный поток ввода stdin в языке С соответствует потоку cin. Стандартный поток сообщений об ошибках stderr в языке С соответствует потоку cerr. Эти соответствия между стандартными потоками ввода-вывода в языке C и C++ настолько близки, что потоки ввода-вывода как в стиле языка С, так и стиле языка С++ могут использовать один и тот ж буфер. Например, для создания одного и того же потока вывода можно использовать комбинацию операций над объектами cout и stdout (такая ситуация часто встречается в смешанном коде, написанном на языка С и С++). Эта гибкость требует затрат. Для того чтобы получить более высокую производительность, не смешивайте операции с потоками из библиотек stdio и ios- tream при работе с одним и тем же потоком, вместо этого вызывайте функцию ios_base::sync_with_stdio(false) перед выполнением первой операции ввода-вывода. В библиотеке stdio определена функция scanf(), т.е. операция ввода, похожая на функцию printf(). Рассмотрим пример.
int x;
char s[buf_size];
int i = scanf(Mзначение x равно ‘%d‘, а значение s равно ‘%s‘\n",&x,s);
Здесь функция scanf() пытается считать целое число в переменную x и последовательность символов, не являющихся разделителями, в массив s. Неформатные символы указывают, что они должны содержаться в строке ввода. Рассмотрим пример.
мзначение x равно ‘123‘, а значение s равно ‘string ,\n"
Программа введет число 123 в переменную x и строку "string", за которой следует 0, в массив s. Если вызов функции scanf() завершает работу успешно, результирующее значение (i в предыдущем вызове) будет равно количеству присвоенных аргументов-указателей (в данном примере это число равно 2); в противном случае оно равно EOF. Этот способ индикации ввода уязвим для ошибок (например, что произойдет, если вы забудете вставить пробел после строки "string" в строке ввода?). Все аргументы функции scanf() должны быть указателями. Мы настоятельно рекомендуем не использовать эту функцию.
Как же ввести данные, если мы вынуждены использовать библиотеку stdio? Один и из распространенных ответов гласит: “Используйте стандартную библиотечную функцию gets() ”.
// очень опасный код: char s[buf_size];
char* p = gets(s); // считывает строку в массив s
Вызов p=gets(s) будет вводить символы в массив s, пока не обнаружится символ перехода на новую строку или не будет достигнут конец файла.
В этом случае в конец строки s после последнего символа будет вставлен 0. Если обнаружен конец файла или возникла ошибка, то указатель p устанавливается равным NULL (т.е. 0); в противном случае он устанавливается равным s. Никогда не используйте функцию gets(s) или ее эквивалент scanf("%s",s))! За прошедшие годы создатели вирусов облюбовали их слабые места: генерируя вводную строку, переполняющую буфер ввода (в данном примере строку s), они научились взламывать программы и атаковать компьютеры. Функция sprintf() страдает от таких же проблем, связанных с переполнением буфера.
Библиотека stdio содержит также простые и полезные функции чтения и записи символов.
Опубликовал katy
May 08 2015 11:23:28 ·
0 Комментариев ·
3104 Прочтений ·
• Не нашли ответ на свой вопрос? Тогда задайте вопрос в комментариях или на форуме! •
Комментарии
Нет комментариев.
Добавить комментарий
Рейтинги
Рейтинг доступен только для пользователей.
Пожалуйста, залогиньтесь или зарегистрируйтесь для голосования.
Нет данных для оценки.
Гость
Вы не зарегистрированны? Нажмите здесь для регистрации.