2016-07-16 5 views
2

Im 사용자가 8 자리 16 진수를 삽입하고 이진으로 변환하고 작업에 따라 다음과 같이 인쇄해야하는 이진/16 진수 계산기를 만드는 중입니다. 내 문제는 그 배열에서 16 진수 숫자를 읽고 그것을 변환하고 다른 배열에 저장하려고하면 인쇄 후 이상한 caracters (V < # nst) tt배열에 연속적으로 쓰는 방법

이 부분입니다 내 코드 :

#include <stdio.h> 
    #include <stdlib.h> 
    #include <math.h> 
    #include <float.h> 
    #include <proyecto.h> 
    #include <string.h> 
    int main() { 
     char op,bin[31],hex[100],hex2[100]; 
     int sizeh,repeat1,repeat2,n,z,i; 
     printf("Hexadecimal: "); 
     scanf("%s",hex); 
     convert(hex,bin,n); 

변환 기능 :

#include <stdio.h> 
#include <stdlib.h> 
#include <math.h> 
#include <float.h> 
#include <proyecto.h> 
#include <string.h> 
void convert(char hex[],char bin[],int n){ 
int i,b; 
printf("\nEquivalent binary value: "); 
for(i=0;i<8;i++){ 
switch(hex[i]){ 
case '0': scanf("0000",bin); break; 
case '1': scanf("0001",bin); break; 
case '2': scanf("0010",bin); break; 
case '3': scanf("0011",bin); break; 
case '4': scanf("0100",bin); break; 
case '5': scanf("0101",bin); break; 
case '6': scanf("0110",bin); break; 
case '7': scanf("0111",bin); break; 
case '8': scanf("1000",bin); break; 
case '9': scanf("1001",bin); break; 
case 'A': scanf("1010",bin); break; 
case 'B': scanf("1011",bin); break; 
case 'C': scanf("1100",bin); break; 
case 'D': scanf("1101",bin); break; 
case 'E': scanf("1110",bin); break; 
case 'F': scanf("1111",bin); break; 
case 'a': scanf("1010",bin); break; 
case 'b': scanf("1011",bin); break; 
case 'c': scanf("1100",bin); break; 
case 'd': scanf("1101",bin); break; 
case 'e': scanf("1110",bin); break; 
case 'f': scanf("1111",bin); break; 
default: printf("\nInvalid hexadecimal digit %c ",hex[i]); 
} 
} 
printf("%s",bin); 
} 
함수의 포인트는 문자 이진 배열에 지속적으로 작성하는, 그래서 내가 AB를 입력하면 배열 먼저 1010과에 삽입 것이다

위치 5는 1011을 쓰는 것을 계속할 것이다. 그러나 어떻게 든 나는 dont ma 다. 그것을 작동 시키려면

+0

당신이 scanf'가하는'에 대해 어떻게 생각하십니까? – immibis

답변

1

scanf("0000",bin);strcat(bin, "0000"); 등으로 변경할 수 있습니다. 참고이 방법은 복잡 있고 예를 들어 bin은 충분히 크고 빈 문자열로 초기화해야합니다 :

char bin[33] = ""; 
+0

호기심에서 왜 그 질문은 대답하기에 충분하지만 상향 회선으로 생각하지 않았다고 생각 했습니까? – user1717828

+0

@ user1717828 : 방금 잊어 버렸습니다. 들여 쓰기의 부족은 확실히 해제됩니다 ;-) – chqrlie

관련 문제