170 похожих чатов

Гм, товарищи, а чем б заменить sscanf в "новом модном"

С++?

23 ответов

7 просмотров

В старом вонючем на stringstream. В новом модном модно брать внешние либы. Гуглится scnlib

🐈- Автор вопроса
Artöm Bakri Al-Sarmini
В старом вонючем на stringstream. В новом модном м...

мы проверили эту scnlib и уверены, что в ней не живёт UB? Мы доверяем свой продукт (пусть и какую-то домашнюю поделку, окей), некоему 20-летнему фину?

🐈
мы проверили эту scnlib и уверены, что в ней не жи...

Ты либо берешь готовую библиотеку, либо ::scanf, либо пишешь сам. Так всегда было

🐈- Автор вопроса
Alexander Karaev
если тебе чиселки парсить, то from_chars

Мне 1 раз в одном месте распарсить "%u-%u-%u" тащить ради такого удовольствия дополнительную либу - это сильно

🐈- Автор вопроса
Dmitriy [Отпуск]
Та возьми sscanf, в чем проблема?)

в том что я за каким-то лешим переделал std::string на std::string_view. sscanf c ним плохо дружит. вообще проблема решена путём создания временного std::string, нооо.... хочется "правильнее"

🐈
в том что я за каким-то лешим переделал std::strin...

У string_view ведь есть метод data(), который возвращает const char*

Dmitriy [Отпуск]
А нуль-терминатор есть?))

strlen работает, значит должен быть

Kirill 🚜
У string_view ведь есть метод data(), который возв...

Он необзятельно вернёт нультерминированную строку

🐈- Автор вопроса
Danya🔥
Он необзятельно вернёт нультерминированную строку

я так понимаю, она будет нультерминированной, если это была "последняя" или "единственная переданная строка" Если же я деребаню длинную строку по каким-то токенам в string_view то в data() у меня будет "строка" от нужного места и до конца оригинальной строки

Danya🔥
Он необзятельно вернёт нультерминированную строку

Если он был создан из std string - то вернёт. Я так понял, у @ChuviW до этого были как раз std string

Kirill 🚜
Если он был создан из std string - то вернёт. Я та...

Ну это не значит, что он не использует методы, которые могут убрать нуль

🐈- Автор вопроса
Kirill 🚜
Если он был создан из std string - то вернёт. Я та...

у меня деребанивалка строки принимала std::string и возвращала вектор из std::string теперь она принимает string_view и возвращает вектор из string_view.

🐈
у меня деребанивалка строки принимала std::string ...

Так чем для чисел не подходит from_chars?

Kirill 🚜
strlen работает, значит должен быть

не значит, никто его там не обещает

🐈
у меня деребанивалка строки принимала std::string ...

ты можешь работать и со string_view: #include <charconv> #include <iostream> #include <regex> #include <string_view> int to_int(const std::sub_match<std::string_view::const_iterator>& sm) { int d; std::from_chars(sm.first, sm.second, d); return d; } int main() { std::regex r{"(\\d+)-(\\d+)-(\\d+)"}; std::string_view sv{"10-20-30"}; std::match_results<std::string_view::const_iterator> m; if( std::regex_match(sv.begin(), sv.end(), m, r) ) { int a = to_int(m[1]); int b = to_int(m[2]); int c = to_int(m[3]); std::cout << a << '-' << b << '-' << c << std::endl; } }

🐈- Автор вопроса

Похожие вопросы

Обсуждают сегодня

Сообщение* в закодированном виде. То есть, просто сделать sendMessage?text=Привет бла-бла! не получится, надо в HEX переводить, и добавлять процент, типа такого: sendMessage?t...
КТ315
21
А случайно нет ли в паскале штатной возможности передать указатель и количество туда где array of в качестве аргумента?
zamtmn
25
Anyone here suffers from unexplained aural migraines, who would be up for talking for a bit? Doesn't *have* to be aural, but I am not asking about headaches, I mean actual mi...
Martin Rys
58
Только такой if ($modx->event->name == 'OnBeforeCartItemAdding') { $meta = $params['item']['meta']; $lang = $modx->getConfig('_lang'); // проверяем, задана ли опция i...
Multi Web
1
Всем привет. Испытываю проблемы в работе БД, а именно огромного роста логов, такого характера: 024-05-16 18:39:07 +05 sentry sentry [unknown] 1050169 7-1 app-sentry01.corp.ru>...
Alexey
2
Ну раз я пока тут, задам пару глупых вопросов. Зачем писать на ассемблере если компилятор довольно умный, а ассемблер много времени занимает? В каких прикладных задачах сейчас...
Максим Рябцев
20
Хм. А телеграм апи работают через HTTP?
The Bird of Hermes
14
Почему Telegram пишет, что объект media не найден, хотя на самом деле я его передаю? Делаю на urllib, без зависимостей, так надо. Вызываю метод sendMediaGroup с таким JSON: ...
Alexey S
1
Если подытожить: По мнению Розыча и Хемуля и др. - предпочтительно по возможности объявлять в секции имплементации потому-что: 1) Выше скорость компиляции 2) Не замусоривается...
notme
7
я не магистр хаскеля, но разве не может лейзи тип конвертнуться в не-лейзи запросив вычисление содержимого прям при инициализации?
deadgnom32 λ madao
100
Карта сайта