powered by simpleCommunicator - 2.0.18     © 2024 Programmizd 02
Map
Форумы / C++ [игнор отключен] [закрыт для гостей] / printf
25 сообщений из 41, страница 1 из 2
printf
    #40109854
tors
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сабж, максимально подробно и максимально с примерами.

Смотрел статьи на википедии и на сайтах.
Мало примеров, не все понял.

Дайте ссыль.
Желательно на русском.

C ув. Tors
...
Рейтинг: 0 / 0
printf
    #40109857
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Подробнее чем на https://ru.wikipedia.org/wiki/Printf уже некуда.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
printf
    #40109902
Siemargl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
printf
    #40111539
http://microsin.net/programming/arm/secrets-of-printf.html
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
// 3.3 ширина формата (width option): %5d = гарантировано, что вывод числа всегда займет 5 символьных позиций (если нужно, то больше, но никак не меньше).
// Чтобы добиться нормального использования, поле опции ширины должно быть указано таким, чтобы удовлетворять максимальному размеру ожидаемого выводимого числа.
("%5d", 0)              // ____0
("%5d", -7)             // ___-7
("%5d", 12345678)       // 12345678
("%05d", 22)            // 00022
("%05d", -22)           // -0022

// 3.4. Заполнение лишнего места. Функция printf предоставляет заполнение пространства пробелами (слева или справа), и заполнение нулями (только слева).

// 3.5. Опция выравнивания (Justify Option)
// Чтобы сделать число выровненным слева, к спецификатору формата нужно добавить знак минуса (-).
// Чтобы напечатать число в поле шириной в 5 символов, с выравниванием по левому краю спецификатор формата будет %-5d.
("%-5d", 0)             // 0____
("%-5d", -7)            // -7___
("%-5d", 12345678       // 12345678

("% 5d", 0)             // _0000
("% 5d", -7)            // -0007
("%+5d", 0)             // +0000
("% 5d", -7)            // -0007

// 5. Вывод чисел с плавающей точкой (Floating Point)
// %.0f (.0) = какое количество цифр может появиться после десятичной точки
("%.0f", e)             // 3 (ещё и с округлением)
("%.0f.", e)            // 3. (если указана precision 0, то десятичная точка также исчезает, НО её можно вернуть)
("%.1f", e)             // 2.7
("%.2f.", e)            // 2.72
("%.6f", e)             // 2.718282
("%f", e)               // 2.718282 (обычный float содержит 6 символов)
("%.7f", e)             // 2.7182818 (НО можно принудительно запросить больше)

// Мы можем указать оба и ширину (width), и точность (precision) одновременно в одном спецификаторе формата. Имейте в виду, что 5.2 означает общую длину 5, с 2 цифрами после десятичной точки.
// Самая распространенная ошибка, когда думают, что это означает 5 цифр до точки и 2 цифры после точки, но это неправильно. Будьте внимательны.
"%5.0f", e              // ____3
"%5.0f.", e             // ____3.
"%5.2f", e              // _2.72
"%5.7f", e              // 2.7182818

// Можно также комбинировать precision с флагами, с которыми мы уже познакомились, чтобы указать левое выравнивание, дополнение слева нулями, применение знака +, и т. д.
...
Рейтинг: 0 / 0
printf
    #40111540
кто-то в C++ юзает *printf() в продакшене?
...
Рейтинг: 0 / 0
printf
    #40111541
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
бабушкин зайчиккто-то в C++ юзает *printf() в продакшене?

Скорее всего все. Потому что в С++ вывод с вменяемым форматированием появился
только в С++20, да и то реализован не везде.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
printf
    #40111565
но там же проблемы с utf8 и безопасностью...
ей нельзя скормить string
...
Рейтинг: 0 / 0
printf
    #40111581
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
string.c_str() работает идеально. А что за проблемы у тебя с utf-8?
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
printf
    #40111596
Siemargl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
бабушкин зайчик
но там же проблемы с utf8 и безопасностью...
ей нельзя скормить string

ну покажи проблемы с безопасностью на современных компиляторах
...
Рейтинг: 0 / 0
printf
    #40111603
Dimitry Sibiryakov
string.c_str() работает идеально. А что за проблемы у тебя с utf-8?

не помню, не пользуюсь им уже, может и показалось

Siemargl
бабушкин зайчик
но там же проблемы с utf8 и безопасностью...
ей нельзя скормить string

ну покажи проблемы с безопасностью на современных компиляторах

не знаю насчёт современных, но он падал со stack overflow (превышение размера - самая известная дыра) и типы не чекал
...
Рейтинг: 0 / 0
printf
    #40111606
rdb_dev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
бабушкин зайчик, регулярно!
Даже в библиотеке NI-VISA есть подобие printf()/scanf() - viQueryF().
...
Рейтинг: 0 / 0
printf
    #40111608
rdb_dev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
бабушкин зайчик, единственная проблема с utf8 в printf, это вычисление кол-ва символов для фиксированного по ширине вывода, но эту проблему мы где-то тут решили даже на уровне compile time.
...
Рейтинг: 0 / 0
printf
    #40111615
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Друзья! К порядку.
...
Рейтинг: 0 / 0
printf
    #40111622
Фотография Alex_Ustinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
тут можно пораскинуть мозгами, printf() - это C или C++
...
Рейтинг: 0 / 0
printf
    #40111628
rdb_dev
бабушкин зайчик, регулярно!
Даже в библиотеке NI-VISA есть подобие printf()/scanf() - viQueryF().

ну он так то в каждом языке поди есть
но они там адаптированные
...
Рейтинг: 0 / 0
printf
    #40111970
rdb_dev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alex_Ustinov, а какая разница? Си - есть подмножество C++ с некоторыми ограничениями.
В C++, вместо <stdio.h>, включаешь в код <cstdio> и у функция printf появляется в пространстве имён std.
...
Рейтинг: 0 / 0
printf
    #40111994
Фотография Alex_Ustinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rdb_dev,

чтобы понять смысл того что я написал - надо прочитать все комменты сверху вниз...
мой коммент - всего лишь прикол на то что в форуме С++ на такие простые вопросы разворачивается дискуссия на >4 простыни
затем еще и топик со развернувшейся философией переносится в Вопрос-Ответ или куда далее)
...
Рейтинг: 0 / 0
printf
    #40112003
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
"Да как же тебя понять, если ты ничего не говоришь?".

P.S.
"Мозгами пораскинуть", конечно, можно, но совершенно не факт, что чужие домыслы будут совпадать с вашим посылом.
...
Рейтинг: 0 / 0
printf
    #40112020
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alex_Ustinov
rdb_dev,

чтобы понять смысл того что я написал - надо прочитать все комменты сверху вниз...
мой коммент - всего лишь прикол на то что в форуме С++ на такие простые вопросы разворачивается дискуссия на >4 простыни
затем еще и топик со развернувшейся философией переносится в Вопрос-Ответ или куда далее)
вы не прояснили ситуацию)
Сухие ответы на stackoverflow а не на форуме) :
...
Рейтинг: 0 / 0
printf
    #40112084
Фотография ну я
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alex_Ustinov
тут можно пораскинуть мозгами, printf() - это C или C++

Эмм... И что, если функция printf вызывается из C++, то она это как-то понимает и работает иначе или об чем есть повод пораскидывать?
...
Рейтинг: 0 / 0
printf
    #40112135
Фотография Alex_Ustinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ну ребятушки) где у ТС про С++
ну яЭмм... И что, если функция printf вызывается из C++, то она это как-то понимает и работает иначе или об чем есть повод пораскидывать?смотрим же на ТС, а не на бабушкин зайчиккто-то в C++ юзает *printf() в продакшене?
...
Рейтинг: 0 / 0
printf
    #40112150
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Понятнее всё равно не стало.
Какой (чей) тезис опровергаем? Или, наоборот - подтверждаем?
...
Рейтинг: 0 / 0
printf
    #40112184
Фотография Alex_Ustinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
что непонятного? mayton и тот уже все понял!)
авторразворачивается дискуссия на >4 простыниразворачиваем, непонимаем, понимаем...подтверждаем, опровергаем...)
вопрос у ТС какой был?)))
...
Рейтинг: 0 / 0
printf
    #40112194
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вопроса вообще не было. Есть запрос (просьба).
Что, как бы, вообще не одно и то же.
...
Рейтинг: 0 / 0
printf
    #40112196
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Челобитная.
...
Рейтинг: 0 / 0
25 сообщений из 41, страница 1 из 2
Форумы / C++ [игнор отключен] [закрыт для гостей] / printf
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали тему (1): Анонимы (1)
Читали форум (1): Анонимы (1)
Пользователи онлайн (9): Анонимы (6), Yandex Bot, Bing Bot, RePredeclared 2 мин.
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]