使用除8,10和16以外的基础的ostream
我有一个多项式类,它的自然表示就是它的系数。 如果设置了一个系数,那么它的a 1为二项基础,1或2为三项基础等。例如,在二项基础上,X2 + 1表示为101; 并且在三项基础上,2X2 + 1被表示为201。
该类提供了一个operator<<
overload。 在内部,类使用整数阵列表示系数。 所以我应该能够执行:
ostringstream oss;
for (size_t i=0; i<v.size(); i++)
oss << v[i];
我遇到的问题是我不知道如何为8,10和16以外的基础配置ostream。ios_base为流行的ios_base
提供了std::oct
, std::dec
和std::hex
,但是我不看不到那些经常使用的基地有什么用处。 像ios_base上的C ++ Reference这样的页面没有讨论使用什么。
我如何使用除8,10和16之外的基础的ostream?
我不认为这是可能的使用标准手段。 看着std :: setbase
除8,10或16以外的基数值将基准位重置为零,这对应于小数输出和基于前缀的输入。
自从方向倒退以后,取代我的答案。 见itoa。 该文件说这是一个非标准功能。 由于这是一个非标准函数,因此在页面中有一些实现。
链接地址: http://www.djcxy.com/p/88805.html