c++ - 如何以 36 进制输入数字?

标签 c++

我该怎么做?

int number;
cin >> number;

我希望以 36 进制输入数字(假设它们以 36 进制输入)。在 36 进制中,A 表示 10,B 表示 11,C 表示 12,依此类推。 C++ 如何理解“A”不是字符而是以 36 为基数的数字,并且“cin >>”是否可以用于此目的?

最佳答案

您需要编写一个包含 int& 的包装类,并为该类重载 >>>,以便它在 base36 中进行解析。用法如下所示:

int i;
cin >> base36(i);
// or if you do it more generically:
cin >> base(36, i);

标准 C++ 不为 8、10 和 16 以外的基数提供 I/O。

关于c++ - 如何以 36 进制输入数字?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19003684/

相关文章:

c++ - 如何从 C++ 中的二进制文件中获取 utf-8 字符数?

c++ - MongoDB C++ BSONObj 生命周期

c++ - 为 const 数据创建 cv::Mat header

c++ - 如何为无序容器中的用户定义类型专门化 std::hash<Key>::operator()?

c++ - 如何在 C++ 字符串中找到第一个字符

CopyOnWriteArrayList 的 C++ 版本

Typedef 中的 C++ 指针

c++ - 使用 vector 大小时,for 循环出错

c++ - std::unique_ptr ostream 插入器

c++ - 多次对 vector 进行排序