Гость
Форумы / C++ [игнор отключен] [закрыт для гостей] / printf / 25 сообщений из 41, страница 1 из 2
07.11.2021, 20:13
    #40109854
tors
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
printf
Сабж, максимально подробно и максимально с примерами.

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

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

C ув. Tors
...
Рейтинг: 0 / 0
07.11.2021, 20:22
    #40109857
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
printf
Подробнее чем на https://ru.wikipedia.org/wiki/Printf уже некуда.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
07.11.2021, 23:39
    #40109902
Siemargl
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
printf
...
Рейтинг: 0 / 0
12.11.2021, 21:04
    #40111539
printf
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
12.11.2021, 21:05
    #40111540
printf
кто-то в C++ юзает *printf() в продакшене?
...
Рейтинг: 0 / 0
12.11.2021, 21:09
    #40111541
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
printf
бабушкин зайчиккто-то в C++ юзает *printf() в продакшене?

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

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

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

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

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

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

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

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

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

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

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


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