用C++设计以下程序:利用栈的类模板实现将输入的整数转换成八进制并输出
时间: 2024-03-03 10:48:03 浏览: 64
下面是一个使用栈的类模板实现将输入的整数转换成八进制并输出的示例程序:
```c++
#include <iostream>
#include <stack>
using namespace std;
template <typename T>
void decimalToOctal(T n) {
stack<int> s;
while (n != 0) {
s.push(n % 8);
n /= 8;
}
while (!s.empty()) {
cout << s.top();
s.pop();
}
}
int main() {
int n;
cout << "Enter an integer: ";
cin >> n;
cout << "Octal representation: ";
decimalToOctal(n);
cout << endl;
return 0;
}
```
该程序使用类模板 `stack` 实现将输入的整数转换成八进制并输出。在函数 `decimalToOctal` 中,首先创建了一个 `stack<int>` 类型的对象 `s`,然后通过循环不断计算 `n` 对8取余的结果,并将其压入栈中,直到 `n` 等于0。接着通过循环将栈中的元素依次取出并输出,即为 `n` 的八进制表示。在 `main` 函数中,首先输入一个整数 `n`,然后调用 `decimalToOctal` 函数将其转换成八进制并输出。
阅读全文