gpt4 book ai didi

c++ - 复制到带有十六进制标志集的 cout

转载 作者:行者123 更新时间:2023-11-30 04:40:00 25 4
gpt4 key购买 nike

有这样的东西:

void print_signs()
{
const char* chars[] = {"abcdefghijklmnopqrstuvwxyz0123456789"};
std::copy(chars,chars + 1,std::ostream_iterator<const char*>(cout));
cout << hex; //trying to change the way output works for next line
std::copy(chars,chars + 1,std::ostream_iterator<const char*>(cout));
}

有没有办法让 cout 以十六进制格式打印它们(仅使用 STL 组件)?谢谢。

最佳答案

void print_signs()
{
const std::string chars("abcdefghijklmnopqrstuvwxyz0123456789");
std::cout << std::hex;
std::copy(chars.begin(), chars.end(), std::ostream_iterator<int>(std::cout));
}

如果你不想保留原始的精确打字:

void print_signs()
{
const char* chars[] = {"abcdefghijklmnopqrstuvwxyz0123456789"};
const size_t charCount = strlen(chars[0]);
std::cout << std::hex;
std::copy(chars[0], chars[0] + charCount, std::ostream_iterator<int>(std::cout));
}

如果你绝对不想使用 strlen I 你可以使用:

const size_t charCount = std::string(chars[0]).length();

但这不如 std::string(...) 高效,因为它需要从堆中分配内存。

/A.B.

关于c++ - 复制到带有十六进制标志集的 cout,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1818919/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com