@ProCxx

Страница 139 из 2477
Andrei
03.05.2016
17:05:20
Почему обсуждают си строки? D:

Penter
03.05.2016
17:06:02
Andrei
03.05.2016
17:06:40
Да, об этом и речь

Конфа-то плюсовая.

Google
Penter
03.05.2016
17:07:01
Конфа-то плюсовая.
То шо быдлокодеры делают так

А не так, как надо

Через классы строк

arisu
03.05.2016
17:08:13
а что плохого в <cstring> ?

ну приспичило человеку, чего вы

Penter
03.05.2016
17:08:44
arisu
03.05.2016
17:08:45
части библиотеки си никто пока не выкидывал из стандарта

Penter
03.05.2016
17:08:52
Ну подумаешь, не страндарт

Andrei
03.05.2016
17:09:18
strtok — очень небезопасная функция.

использовать её в продакшне — стрелять себе в ногу

Penter
03.05.2016
17:09:53
Бля он ебнутый

Цпп же

Нахуй это нужно?

Google
melancholiac
03.05.2016
17:47:46
Вот и я думаю...

Нахуй это нужно?

Почему обсуждают си строки? D:
разве си не подмножество си++?

Andrei
03.05.2016
17:55:04
Не в чистом виде.

Ну и это не отменяет того, что с-строки в плюсах лучше не использовать.

Anatoly
03.05.2016
18:01:18
Ну и это не отменяет того, что с-строки в плюсах лучше не использовать.
Ещё б в плюсах к строкам человеческий форматный вывод прикрутили... (a-la sprintf)

Andrei
03.05.2016
18:08:31
Эм.

есть же стримы

std::stringstream

Anatoly
03.05.2016
18:11:10
std::stringstream
Во-первых, буээээ.

Andrei
03.05.2016
18:11:40
Какие-то разумные аргументы?

Anatoly
03.05.2016
18:11:43
Во-вторых, как к ним прикрутить форматные строки в стиле printf ()?

Или gettext?

Andrei
03.05.2016
18:12:12
В чем разница?

Функционально стримы позволяют делять всё то же самое что и printf

Anatoly
03.05.2016
18:13:37
Только вместо одной строки это оазмазывается в compile-time кашу на type conversions

Andrei
03.05.2016
18:14:38
Это же хорошо.

Anatoly
03.05.2016
18:14:40
В результате норот пишет http://www.boost.org/doc/libs/1_53_0/libs/format/doc/format.html

Хрена с два это хорошо. Прикрути туда gettext, ага.

Andrei
03.05.2016
18:15:41
Прости, не очень понимаю.

Google
Andrei
03.05.2016
18:15:46
Что за gettext?

Anatoly
03.05.2016
18:15:57
Ну и модификаторы эти дибильные в плюсовом стиле. Представь, что надо вывести 3 числа с разной точностью. Каждый раз переключаться?

Что за gettext?
А, ну тогда ясно.

Andrei
03.05.2016
18:17:11
ну во-первых есть гораздо более безопасный vsprintf

Anatoly
03.05.2016
18:17:20
https://en.m.wikipedia.org/wiki/Gettext

Andrei
03.05.2016
18:17:26
Да, я понял уже.

Anatoly
03.05.2016
18:17:55
ну во-первых есть гораздо более безопасный vsprintf
Аналог vsprintf-а для c++ строк - в студию!

Andrei
03.05.2016
18:18:07
сишный можно использовать

просто не читсый sprintf

Anatoly
03.05.2016
18:18:17
Сишный сасёд

Так как выделение памяти надо сбоку поикручивать

Andrei
03.05.2016
18:19:30
Цикл с ресайзом.

Andrei
03.05.2016
18:19:33
Не очень сложно.

В любом случае, это не c++ way

Anatoly
03.05.2016
18:20:04
Вот и получается: в одном решении нет формата, но есть выделение памяти, в другом решении формат есть, но приходится вручную выделять память и следить за размерами. Ужоснах.

Andrei
03.05.2016
18:20:24
отсутсвие типобезопасности гораздо хуже.

Anatoly
03.05.2016
18:20:52
Цикл с ресайзом.
Буэээ Ведь можно ж было б протащить в стандарт решение в стиле asprintf ()...

В любом случае, это не c++ way
Там я сверху кинул ссылку на буст.

Andrei
03.05.2016
18:21:23
Я видел.

буст не с++

Google
Andrei
03.05.2016
18:21:47
Далеко не всегда с++-way

Anatoly
03.05.2016
18:22:07
отсутсвие типобезопасности гораздо хуже.
Иногда достаточно просто printf ("%u", (unsigned int) x).

Правда, создатели C крупно проебались с типами.

Andrei
03.05.2016
18:22:33
в таком случае и в стрим можно записать без особых попоболей

Anatoly
03.05.2016
18:22:59
И теперь надо юзать inttypes.h с PRIu32 etc

Andrei
03.05.2016
18:23:31
<cstdint>

Всмысле, как?

Admin
ERROR: S client not available

Anatoly
03.05.2016
18:23:37
И?

Andrei
03.05.2016
18:23:57
это был на это ответ

И теперь надо юзать inttypes.h с PRIu32 etc

<cstdint>

Anatoly
03.05.2016
18:25:01
И как ты это в стрим запишешь?

Andrei
03.05.2016
18:25:51
std::cout«static_cast<uint32_t?x);

Или я чего-то не понимаю?

Anatoly
03.05.2016
18:26:48
Можно и cout << x, но вопрос-то не в этом.

В C конверсия нужна для типобезопасности.

В плюсах ввод-вывод типобезопасен, но нет формата (в стандарте, буст не в счёт).

arisu
03.05.2016
18:28:30
iomanip

Google
Andrei
03.05.2016
18:28:35
Так а чем тебе не формат стримы с iomanip ?

Alex Фэils?︙
03.05.2016
18:28:48
strtok норм вещь, только стреляющая)

Anatoly
03.05.2016
18:28:59
Gettext, йопта

Andrei
03.05.2016
18:29:17
что ты заладил со своим gettext

что, других нет локализаторов нет что ли?

плюсовых

Anatoly
03.05.2016
18:29:55
Iomanip - во-первых, компайлтайм. Во-вторых, надо не забывать сбрасывать. В-третьих, длинно.

Alex Фэils?︙
03.05.2016
18:29:59
есть код char * token = strtok(text," ,.?!"); while(token!=some_word) { //некоторые действия token = strtok(NULL," ,.?!"); // почему тут нулл? }
если функции strtok передавать нулл первым указателем, то она будет использовать предыдущие токены

Anatoly
03.05.2016
18:30:16
Andrei
03.05.2016
18:30:37
Компайл-тайм это же наоборот хорошо, лол.

В чем проблема.

Anatoly
03.05.2016
18:31:17
Да, в плане локализации иногда бывает полезно поменять параметры местами. В printf я могу так сделать. А iomanip так могёт?

Andrei
03.05.2016
18:32:01
Iomanip - во-первых, компайлтайм. Во-вторых, надо не забывать сбрасывать. В-третьих, длинно.
Обычный трейд-офф между ленью программиста и безопасностью :D

Anatoly
03.05.2016
18:32:48
Компайл-тайм это же наоборот хорошо, лол.
І знов за рибу гроші. Я ему полчаса за геттекст говорю, а он мне за компиляцию. Не, я понимаю, что для всяких рубей и питонов это один чёрт...

Andrei
03.05.2016
18:33:39
Всё, господи, я понял зачем тебе не компайлтайм.

Ладно. Когда ты пишешь мультиланг программу я согласен приходится поебаться.

Но там в любом случае нужная какая-то сторонняя либа.

Anatoly
03.05.2016
18:34:20
Избежать, лол.

Andrei
03.05.2016
18:34:26
gettext или что-то другое.

Страница 139 из 2477