使用除8,10和16以外的基数的ostream

jww*_*jww 7 c++ base ostream

我有一个多项式类,它的自然表示是它的系数.如果设置了系数,那么其a 1用于二项式,1或2用于三项式等.例如,在二项式的基础上,X 2 + 1表示为101; 在三项式的基础上,2X 2 + 1表示为201.

该类提供了一个operator<<过载.在内部,该类使用整数数组表示系数.所以我应该能够执行:

ostringstream oss;
for (size_t i=0; i<v.size(); i++)
   oss << v[i];
Run Code Online (Sandbox Code Playgroud)

我遇到的问题是我不知道如何配置比8,10和16等基地ostream的ios_base提供std::oct,std::dec以及std::hex流行的基地,但我没有看到需要使用什么不常用的基地.而像ios_base上的C++ Reference这样的页面并没有讨论要使用的内容.

如何使用8,10和16以外的基数的ostream?

Rob*_*obs 0

由于方向向后,所以更换了我的答案。参见伊托亚。文档说这是一个非标准函数。由于这是一个非标准函数,stackoverflow在页面中有一些实现。

  • 不幸的是,OP要求相反。他们需要提供自己的 IO 操纵器。当然,这个实现应该产生一个字符串表示形式,以确认“stoi()”能够再次转换为数字。 (2认同)