c语言中如何输入二进制
时间: 2024-10-16 08:13:53 浏览: 46
c语言中十六进制转二进制显示的实现方法
在C语言中,直接从用户那里获取二进制数据通常比较复杂,因为标准输入流scanf()默认处理的是文本格式的数据。然而,你可以通过自定义函数或者使用特定库来实现。这里有一种间接的方式:
1. 使用`getc()`函数逐位读取:可以遍历字符,判断每个字符是否是数字0-1,然后转换为对应的二进制值。例如:
```c
#include <stdio.h>
#include <ctype.h>
int binary_digit(char ch) {
return (ch - '0') ? (ch - '0') : ((ch - '1') * -1); // 对于'1',转换为-1,后续处理会变成相反的二进制位
}
void input_binary(char *binary_str) {
int i = 0;
while ((ch = getchar()) != EOF && ch != '\n') {
if (isdigit(ch) || ch == '1') {
binary_str[i++] = binary_digit(ch);
} else {
printf("Invalid binary digit detected.\n");
}
}
binary_str[i] = '\0'; // 结束字符串
}
int main() {
char binary[64]; // 假设最多需要64位
input_binary(binary);
// 现在binary数组存储了输入的二进制串,后续处理它即可
return 0;
}
```
阅读全文