C++能够实现不同进制之间的转换,能够保存历史记录,在一次转换结束后可以直接进行下一次转换,也可以重新输入一个数进行新的转换
时间: 2023-12-10 17:42:24 浏览: 65
是的,C++可以实现不同进制之间的转换。具体实现方法如下:
1. 从用户输入获取待转换的数和要转换的进制。
2. 使用 `std::stringstream` 将输入的字符串转换成对应的数字。
3. 使用 `std::stringstream` 将数字转换为目标进制下的字符串。
4. 输出转换结果,并将结果存储到历史记录中。
5. 如果用户需要进行下一次转换,则重复步骤 1-4;如果需要重新输入一个数进行新的转换,则回到步骤 1。
下面是一个简单的实现示例:
```c++
#include <iostream>
#include <sstream>
#include <vector>
#include <string>
using namespace std;
// 十进制转换为目标进制
string convert(int num, int base) {
string result;
while (num != 0) {
int remainder = num % base;
result = to_string(remainder) + result;
num /= base;
}
return result;
}
// 获取用户输入
void get_input(int& num, int& base) {
cout << "请输入一个十进制数:";
cin >> num;
cout << "请输入要转换的进制:";
cin >> base;
}
int main() {
vector<string> history;
while (true) {
int num, base;
get_input(num, base);
// 转换为目标进制
string result = convert(num, base);
cout << "转换结果为:" << result << endl;
// 存储到历史记录中
history.push_back(result);
// 询问用户是否继续
char choice;
cout << "是否继续?(Y/N)";
cin >> choice;
if (choice == 'N' || choice == 'n') {
break;
}
}
// 输出历史记录
cout << "历史转换记录:" << endl;
for (const auto& item : history) {
cout << item << endl;
}
return 0;
}
```
在这个示例中,我们使用了 `std::stringstream` 来进行字符串和数字之间的转换。同时,我们也使用了一个 `vector` 来存储历史记录。
阅读全文