利用栈的类模板实现将输入的整数转换成八进制并输出。
时间: 2024-03-06 11:51:43 浏览: 16
好的,我理解了您的要求。以下是实现该功能的代码:
```c++
#include <iostream>
#include <stack>
using namespace std;
template<typename T>
void DecimalToOctal(T num) {
stack<int> s;
while (num != 0) {
s.push(num % 8);
num /= 8;
}
while (!s.empty()) {
cout << s.top();
s.pop();
}
}
int main() {
int num = 12345;
cout << "Decimal " << num << " is Octal: ";
DecimalToOctal(num);
cout << endl;
return 0;
}
```
该程序定义了一个类模板 DecimalToOctal,用于将输入的十进制整数转换为八进制并输出。在该函数中,首先定义了一个栈 s,用于存储转换后的结果。然后,通过循环将输入的十进制数 num 转换为八进制数,每次将 num 对 8 取模,并将结果压入栈中,然后将 num 除以 8。最后,通过循环将栈中的元素依次取出并输出,即可得到转换后的八进制数。
在主函数中,我们定义了一个整数 num,并调用 DecimalToOctal 函数进行转换,并输出结果。
注意,该程序只是一个示例,需要转换其他类型的整数,只需要修改模板函数的参数类型即可。