1
'b', -2 등의 잘못된 입력을 던져 넣는 것처럼 입력이 제대로되어 있는지 확인해야합니다. 간단한 코드, 확인 방법 그것은 :부호없는 long long의 적절한 입력을 확인하는 동안 음수 오류가 발생했습니다.
#include <stdio.h>
int main()
{
unsigned long long bigNumber;
if(scanf("%llu", &bigNumber) == 0)
printf("Input error!");
else
printf("%llu\n", bigNumber);
return 0;
}
그러나 때 입력
내가이 출력있어-2
:
18446744073709551614
잘못이다, 왜냐하면 -2는 부호없는 long long이 아니기 때문입니다. 그래서
ex.c:6:52: error: comparison of unsigned expression < 0 is always false
[-Werror,-Wtautological-compare]
if((scanf("%llu", &bigNumber) == 0) || (bigNumber < 0))
~~~~~~~~~^~
1 error generated.
가에있는 경우, 어떻게 제대로 내 큰 번호를 확인합니까 : 나는 놀랍게도
if((scanf("%llu", &bigNumber) == 0) || (bigNumber < 0))
에 입력 조건을 변경했을 때
, 내가 컴파일 오류가 발생했습니다 0 - 10^19 사이의 정수 여야합니까?
'fgets'와 같이 문자열로 입력 한 다음'-'로 시작하는지 확인한 다음'sscanf' 또는'strtoull'을 확인하십시오. – BLUEPIXY