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

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

С++?

23 ответов

22 просмотра

В старом вонючем на 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; } }

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

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

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

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Гайс, вопрос для разносторонее развитых: читаю стрим с юарта, нада выделять с него фреймы с определенной структурой, если ли чо готовое, или долбаться с ринг буффером? нада у...
Vitaly
9
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
длина пакета фиксированная, или меняется?
Okhsunrog
7
Карта сайта