Как зайти в Даркнет?!
25th January, 01:11
8
0
Как в tkinter из поля ввода Entry получить значение в одну переменную и обновить строку кнопкой, затем получить ещё одно введённое значение и затем сложить их. Ниже пример кода
21st July, 19:00
899
0
Программа, которая создает фейковые сервера в поиске игровых серверов CS 1.6 Steam
21st March, 17:43
952
0
Очень долго работает Update запрос Oracle
27th January, 09:58
916
0
не могу запустить сервер на tomcat HTTP Status 404 – Not Found
21st January, 18:02
907
0
Где можно найти фрилансера для выполнения поступающих задач, на постоянной основе?
2nd December, 09:48
942
0
Разработка мобильной кроссплатформенной военной игры
16th July, 17:57
1727
0
период по дням
25th October, 10:44
3957
0
Пишу скрипты для BAS только на запросах
16th September, 02:42
3722
0
Некорректный скрипт для закрытия блока
14th April, 18:33
4614
0
прокидывать exception в блоках try-catch JAVA
11th March, 21:11
4382
0
Помогите пожалуйста решить задачи
24th November, 23:53
6088
0
Не понимаю почему не открывается детальное описание продукта
11th November, 11:51
4352
0
Нужно решить задачу по программированию на массивы
27th October, 18:01
4400
0
Метода Крамера С++
23rd October, 11:55
4309
0
помогите решить задачу на C++
22nd October, 17:31
4002
0
Помогите решить задачу на python с codeforces
22nd October, 11:11
4492
0
Python с нуля: полное руководство для начинающих
18th June, 13:58
2599
0
Что Происходит После %?
Я искал это немного, но я не получил особенно прямого ответа. В C (и я думаю C++), как вы определяете, что происходит после % при использовании printf ?. Например:
double radius = 1.0;
double area = 0.0;
area = calculateArea( radius );
printf( "%10.1f %10.2\n", radius, area );
Я взял этот пример прямо из книги, которая у меня есть на языке C. Для меня это вообще не имеет смысла. Где вы придумали 10.1f и 10.2f ? Может кто-нибудь объяснить это?
http://en.wikipedia.org/wiki/Printf#printf_format_placeholders -это ссылка Википедии на заполнители формата в printf. http://www.cplusplus.com/reference/clibrary/cstdio/printf.html также полезно
В основном в простой форме это %[ширина].[точность][тип]. Ширина позволяет убедиться, что печатаемая переменная имеет хотя бы определенную длину (полезно для таблиц и т. д.). Точность позволяет указать точность, с которой печатается число (например. десятичные знаки и т. д.) И информирует C/C++, что такое переменная, которую вы ей дали (символ, целое число, двойной и т. д.).
Надеюсь, это поможет
UPDATE:
Чтобы уточнить, используя ваши примеры:
printf( "%10.1f %10.2\n", radius, area );
%10.1f (ссылаясь на первый аргумент: radius) означает сделать его длиной 10 символов (т. е. pad с пробелами), и вывести его в виде поплавка с одним десятичным знаком.
%10.2 (ссылаясь на второй аргумент: area) означает сделать его длиной 10 символов (как указано выше) и печатать с двумя десятичными знаками.
man 3 printf
man 3 printf
на A Linux система выдаст вам всю необходимую информацию. Вы также можете найти эти справочные страницы в интернете, например по адресу http://linux.die.net/man/3/printf
10.1f означает плавающую точку с 10 символами шириной с 1 местом после десятичной запятой. Если число содержит менее 10 цифр, оно заполняется пробелами. 10.2f-это то же самое, но с двумя знаками после запятой.
У вас есть эти основные типы:
%d - integer
%x - hex integer
%s - string
%c - char (only one)
%f - floating point (float)
%d - signed int (decimal)
%i - signed int (integer) (same as decimal).
%u - unsigned int
%ld - long (signed) int
%lu - long unsigned int
%lld - long long (signed) int
%llu - long long unsigned int
Edit: есть несколько других, перечисленных в ответе @Eli's (man 3 printf).
10.1f означает плавающую точку с 1 местом после десятичной запятой и 10 местами перед десятичной запятой. Если число содержит менее 10 цифр, оно заполняется пробелами. 10.2f-то же самое, но с двумя знаками после запятой.
10.1f означает плавающую точку с 1 местом после десятичной запятой и 10 местами перед десятичной запятой. Если число содержит менее 10 цифр, оно заполняется пробелами. 10.2f-то же самое, но с двумя знаками после запятой.
В каждой системе, которую я видел, от Unix до Rails миграций, это не так. @robintw выражает это лучше всего:
В основном в простой форме это %[ширина].[точность ][тип].
То
Короче говоря, эти значения после % говорят printf , как интерпретировать (или выводить) все переменные, которые появятся позже. В вашем примере radius интерпретируется как float (это 'f'), а 10.1 дает информацию о том, сколько десятичных знаков следует использовать при его печати.
Смотрите эту ссылку для получения более подробной информации обо всех модификаторах, которые можно использовать с printf.
Справочные страницы содержат нужную вам информацию. Чтобы прочитать, что у вас есть выше:
printf( "%10.2f", 1.5 )
Это будет печатать:
1.50
В то время как:
printf("%.2f", 1.5 )
Печать:
1.50
Обратите внимание на обоснованность того и другого. Аналогично:
printf("%10.1f", 1.5 )
Напечатали бы:
1.5
Любое число после этого . это точность, которую вы хотите напечатать. Любое число до этого . это расстояние от левого края.
Один из вопросов, который не был поднят другими, заключается в том, является ли double тем же самым, что и float . В некоторых системах для double по сравнению с float требовался другой спецификатор формата. Не в последнюю очередь потому, что передаваемые параметры могут быть разных размеров.
%f - float %lf - double %g - double