|
printf() utf8 + выравнивание по ширине
|
|||
---|---|---|---|
#18+
Barlone Не будет изменений в sprintf. В формате кроме минимальной ширины можно задать и максимальную. Если минимальная ширина будет учитывать количество символов, а максимальная - количество байт, то это будет нелогично. Я если максимальную тоже сделать количеством символов, это сломает программы, которые используют максимальную ширину для защиты от переполнения буфера. Извиняюсь, за глупый вопрос, а как в формате установить максимальный размер? ... |
|||
:
Нравится:
Не нравится:
|
|||
22.07.2020, 14:11 |
|
printf() utf8 + выравнивание по ширине
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov А куда он денется? Другого-то способа вывода в Си нет. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.07.2020, 18:57 |
|
printf() utf8 + выравнивание по ширине
|
|||
---|---|---|---|
#18+
А что мне помешает? Только не на utf-8, конечно, а на printf. Аффтару просто надо взглянуть в глаза реальности: printf работает исключительно с кучками байт, никаких "символов" в нём не наблюдается. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
22.07.2020, 19:15 |
|
printf() utf8 + выравнивание по ширине
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov А что мне помешает? Только не на utf-8, конечно, а на printf. Аффтару просто надо взглянуть в глаза реальности: printf работает исключительно с кучками байт, никаких "символов" в нём не наблюдается. Любишь ты очевидные вещи писать. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.07.2020, 20:29 |
|
printf() utf8 + выравнивание по ширине
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov printf не в курсе сколько знакомест на экране займут те байты, которые он посылает консольному драйверу. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.07.2020, 20:53 |
|
printf() utf8 + выравнивание по ширине
|
|||
---|---|---|---|
#18+
rdb_dev А мог бы быть в курсе, хотя бы основываясь на информации по кодировке из локали и правилах кодирования символов. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.07.2020, 06:12 |
|
printf() utf8 + выравнивание по ширине
|
|||
---|---|---|---|
#18+
petrav Barlone Не будет изменений в sprintf. В формате кроме минимальной ширины можно задать и максимальную. Если минимальная ширина будет учитывать количество символов, а максимальная - количество байт, то это будет нелогично. Я если максимальную тоже сделать количеством символов, это сломает программы, которые используют максимальную ширину для защиты от переполнения буфера. Извиняюсь, за глупый вопрос, а как в формате установить максимальный размер? Код: plaintext 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
23.07.2020, 08:14 |
|
printf() utf8 + выравнивание по ширине
|
|||
---|---|---|---|
#18+
Barlone petrav пропущено... Извиняюсь, за глупый вопрос, а как в формате установить максимальный размер? Код: plaintext 1.
Ничего себе. Я думал это только для плавающей точки. :) ... |
|||
:
Нравится:
Не нравится:
|
|||
23.07.2020, 08:42 |
|
printf() utf8 + выравнивание по ширине
|
|||
---|---|---|---|
#18+
Basil A. Sidorov А давайте, для начала, определим ширину строки, в которой печатные символы US-ASCII перемежаются совершенно стандартными управляющими кодами ^H, ^I, ^L и вертикальной табуляции. Вот без всякого юникода и локалей. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.07.2020, 09:21 |
|
printf() utf8 + выравнивание по ширине
|
|||
---|---|---|---|
#18+
В классической консоли из 90х (MS-DOS), табулятор бъёт в следующую позицию кратную восьмёрке. Тоесть чтоб узнать позицию мы еще должны понимать откуда строка стартовала на экране. Или что делать с символом бэкспейса? Он должен уменьшать длину строки. Можно и в отрицательную длину уйти. Что делать с Арабским письмом которое должно печататься справа-налево? Что делать с ascii-control, о котором уже спрашивает Василий? Что делать с управляющими символами цвета, которые должны окрашивать печатаемые символы в разные цвета фона и шрифта? ... |
|||
:
Нравится:
Не нравится:
|
|||
23.07.2020, 10:37 |
|
printf() utf8 + выравнивание по ширине
|
|||
---|---|---|---|
#18+
mayton Что делать с управляющими символами цвета, которые должны окрашивать печатаемые символы в разные цвета фона и шрифта? ... |
|||
:
Нравится:
Не нравится:
|
|||
23.07.2020, 10:39 |
|
printf() utf8 + выравнивание по ширине
|
|||
---|---|---|---|
#18+
rdb_dev Пробежаться по строке и учесть перемещения курсора по \b \t \r \n \f и т.д. - проще пареной репы! FormFeed и Vertical Tab - вообще создают новые строки и тоже требуют дополнительного контекста. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.07.2020, 11:03 |
|
printf() utf8 + выравнивание по ширине
|
|||
---|---|---|---|
#18+
rdb_dev mayton Что делать с управляющими символами цвета, которые должны окрашивать печатаемые символы в разные цвета фона и шрифта? Это прекрасно. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.07.2020, 11:09 |
|
printf() utf8 + выравнивание по ширине
|
|||
---|---|---|---|
#18+
rdb_dev Ничего! Не считать их. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.07.2020, 11:11 |
|
printf() utf8 + выравнивание по ширине
|
|||
---|---|---|---|
#18+
Basil A. Sidorov rdb_dev Ничего! Не считать их. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.07.2020, 11:28 |
|
printf() utf8 + выравнивание по ширине
|
|||
---|---|---|---|
#18+
mayton Или что делать с символом бэкспейса? Он должен уменьшать длину строки. Можно и в отрицательную длину уйти. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.07.2020, 11:43 |
|
printf() utf8 + выравнивание по ширине
|
|||
---|---|---|---|
#18+
Basil A. Sidorov rdb_dev Ничего! Не считать их. Не ничего, а удалять их. :) ... |
|||
:
Нравится:
Не нравится:
|
|||
23.07.2020, 11:44 |
|
printf() utf8 + выравнивание по ширине
|
|||
---|---|---|---|
#18+
petrav Не ничего, а удалять их. :) ... |
|||
:
Нравится:
Не нравится:
|
|||
23.07.2020, 11:51 |
|
printf() utf8 + выравнивание по ширине
|
|||
---|---|---|---|
#18+
rdb_dev petrav Не ничего, а удалять их. :) А если мне нужно не в консоль, а на GUI или в файл? Тогда нужно логику параметризовать назначением. А вообще лучше удалять! А управляющие символы выделить в отдельный API. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.07.2020, 11:55 |
|
printf() utf8 + выравнивание по ширине
|
|||
---|---|---|---|
#18+
petrav, тыж программист! Кому, как не тебе, знать - для чего используется каждый литерал и каждая подготовленная строка в твоей программе? Если ты собираешься выводить строку в какой-нибудь ComboBox, Memo или EditBox, нафига, спрашивается, ты будешь лепить туда управляющие символы для консоли? ... |
|||
:
Нравится:
Не нравится:
|
|||
23.07.2020, 12:25 |
|
printf() utf8 + выравнивание по ширине
|
|||
---|---|---|---|
#18+
rdb_devа вот не считать их при определении кол-ва знакомест - можно. А ничего, что это байт "К", совершенно неотличимый от соответствующего символа?.. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
23.07.2020, 12:27 |
|
printf() utf8 + выравнивание по ширине
|
|||
---|---|---|---|
#18+
rdb_dev petrav, тыж программист! Кому, как не тебе, знать - для чего используется каждый литерал и каждая подготовленная строка в твоей программе? Если ты собираешься выводить строку в какой-нибудь ComboBox, Memo или EditBox, нафига, спрашивается, ты будешь лепить туда управляющие символы для консоли? Мне казалось мы обсуждаем в контексте некоей повторно используемой библиотеки. И мы не знаем что туда передаст пользователь. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.07.2020, 12:27 |
|
printf() utf8 + выравнивание по ширине
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov, нет, это символ с кодом 0x1b ... |
|||
:
Нравится:
Не нравится:
|
|||
23.07.2020, 12:31 |
|
printf() utf8 + выравнивание по ширине
|
|||
---|---|---|---|
#18+
petrav Мне казалось мы обсуждаем в контексте некоей повторно используемой библиотеки. И мы не знаем что туда передаст пользователь. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.07.2020, 12:33 |
|
printf() utf8 + выравнивание по ширине
|
|||
---|---|---|---|
#18+
rdb_dev petrav Мне казалось мы обсуждаем в контексте некоей повторно используемой библиотеки. И мы не знаем что туда передаст пользователь. Тут у нас тема выравнивание по ширине. Как ты предлагаешь выравнивать по ширине если в строке перевод каретки? Управляющие символы — это костыль. От костылей нужно избавляться. Мы не в MS-DOS. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.07.2020, 12:40 |
|
|
start [/forum/topic.php?fid=57&msg=39983025&tid=2017376]: |
0ms |
get settings: |
10ms |
get forum list: |
11ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
39ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
59ms |
get tp. blocked users: |
1ms |
others: | 14ms |
total: | 155ms |
0 / 0 |