2017-09-22 6 views
1

숫자 앞에 숫자 0을 입력하고 싶지만 문제가 있습니다. 숫자 만 입력하면 문제가 없습니다. 예를 들어숫자 앞에 0을 입력 할 때 버그가 발생했습니다.

#include <iostream> 
#include <stdio.h> 

int main() 
{ 
    int input, output; 

    printf("Enter number : "); 
    scanf("%i",&input); 

    output = input % 7; 
    printf("%i", output); 

    return 0; 
} 

: 나 입력 8 줄 때

  • 는 출력 1이다. 그러나 내가 08을 입력 할 때, 출력은 0
  • 이고, 입력이 100 일 때, 출력은 2입니다. 그러나 내가 입력 0100, 출력이 1

을 때 나는 수가 빠르게 전에 간단하게 0를 입력하지 알고 있지만, 그것은 버그가없는 번호 앞에 0를 입력 할 수 있는지 궁금하다.

Windows 10 x64에서 Code :: Blocks 16.01 (MinGW)을 사용합니다. 접두어 인 0와 함께 %i을 사용

+0

선행 0을 입력하면 숫자의 8 진수 표현을 선택합니다 (예 : 8 진수의 0100은 10 진수 표현의 64와 동일합니다. 64 % 7 = 1. 따라서 버그가 아닙니다. – camelCase

+0

@camelCase 알 겠어.하지만 8 진수로 변경하지 않고 숫자 앞에 "0"을 입력 할 수 있는지 궁금하다. (10 진수/10 진수로 유지) –

+0

@sandyKhosasi '% d'을 (를) 사용하십시오. –

답변

6

(08, 0100 등 ..) scanf 당신이 당신이 %d를 사용해야을 무시 scanf을 원하는 경우 기본 8이 아닌 기본 10입니다 8 진수로 입력을 해석한다 대신.