2012-02-07 70 views
0

嘿,我需要一点帮助,无符号字符位访问。我需要进行测试以确保“通道”是一个无符号字符(UCHAR),长度为6位数字(我有这个数字),输入的数字实际上是一个二进制数字(又名1或0)。我不知道如何访问它。任何帮助将是伟大的!无符号字符位访问,确定字符是否由1和0组成

void binEnter(void *channel){ 
int i; 
for (i=0; i<6; i++) { 
redo: 
    printf("Enter binary value for Channel %d: ",i); 
    scanf("%s",(UCHAR *)channel); 
    if (strlen(channel)!=6) { 
     printf("Error entry must be six digits!\n"); 
     goto redo; 
    } 
} 
} 
+0

请不要使用'goto'。你可以重写'if(strlen(channel)== 6)break;' – casablanca 2012-02-07 04:22:02

+0

你真的想每次都通过这个循环覆盖你的输入吗? – 2012-02-07 04:23:58

+0

是的,我必须提示6次进入我在主要功能中调用6次函数 – 2012-02-07 04:32:54

回答

0

做一个循环来检查每个数字。

char *string = channel; 
for (j = 0; j < 6; j++) 
{ 
    if ((string[j] != '0') && (string[j] != '1')) 
    { 
    // error 
    } 
} 

你也可以只使用strtol(3)并检查endptr结果看,如果你有一个6位数字。

相关问题