-
Notifications
You must be signed in to change notification settings - Fork 389
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
hexdump .to_string / ascdump .to_string #290
Comments
Probably something like this (if this is bad, please explain to me why, i am not a great coder by any means) util::nstring to_string() const //member of HexDump
{
util::nostringstream new_stream;//content is identical to << operator, aside from the fact that new stream is created
new_stream << std::hex << std::setfill(PLOG_NSTR('0'));
for (size_t i = 0; i < m_size;)
{
new_stream << std::setw(2) << static_cast<int>(m_ptr[i]);
if (++i < m_size)
{
if (m_group > 0 && i % m_group == 0)
{
new_stream << m_groupSeparator;
}
else
{
new_stream << m_digitSeparator;
}
}
}
return new_stream.str();
}
notes: |
Hey @po0p ! Yes, it's possible. Unfortunately it will look a little bit ugly as it needs an additional call to PLOGI.printf("test format: %s", plog::hexdump(arr).str().c_str()); The implementation is simpler: it's basically a one line of code. I'll push it in a while. |
Hey, thanks! PLOGW << std::format("call. len:{} input: {}(@{:#x}) result: {} st:\n{}",
length,
plog::hexdump(input, min_l).separator("", "").to_string(),
(uint64_t)input,//input is char* so needs casting to display address
plog::hexdump(out, 32).separator("", "").to_string(),
stacktrace); |
Hey, great library!
I am coming from learning C-style code first, so I very much love printf-type formatting
(And still will love probably, writing
%llx%d,<size_t><int>
takes less inputs thanstd::hex << std::dec
)That being said, hexdump and ascdump come very handy in a lot of cases, but they only support
<<
operator.Propose adding a
.str
/.to_str
method, that would either return a char* or std::string/wstring (whichever you prefer), for the reason of being usable with printf-type formatting.The text was updated successfully, but these errors were encountered: