用C++语言写一个程序做二进制转换,保证用户只能输入0到9的数字和小数点,无法输入其他非法字符
时间: 2024-09-25 08:01:57 浏览: 33
高级语言及程序设计模拟测验与答案.docx编程资料
在C++中,你可以创建一个控制台程序来接受用户的输入,并检查它是否只包含有效的二进制数字(即0到9以及小数点)。这里是一个简单的例子:
```cpp
#include <iostream>
#include <string>
#include <sstream>
bool isValidBinaryChar(char c) {
return (c >= '0' && c <= '9') || (c == '.');
}
std::string binaryInput() {
std::string input;
char ch;
while (true) {
std::cout << "请输入二进制数字或一个小数点:";
std::cin >> ch;
if (!isValidBinaryChar(ch)) {
std::cerr << "错误:只允许输入0-9和小数点.\n";
continue;
}
input += ch;
if (ch != '.') break; // 如果不是小数点,继续接收下一个字符
}
return input;
}
int main() {
std::string binaryStr = binaryInput();
if (binaryStr.find('.') != std::string::npos) {
double decimalValue = std::stod(binaryStr);
std::cout << "转换成十进制是:" << decimalValue << "\n";
} else {
int integerValue = std::stoi(binaryStr);
std::cout << "转换成十进制是:" << integerValue << "\n";
}
return 0;
}
```
在这个程序中,我们首先定义了一个`isValidBinaryChar`函数来判断字符是否有效。然后通过一个无限循环获取用户的输入,如果输入了无效字符就提示并重新开始。当用户输入合法的二进制字符串或遇到小数点时,程序会将其转换为整数或双精度浮点数。
阅读全文