나는 >0 && <2^64
의 유효성을 검사하기 위해 scanf("%llu%c", &myUnsignedLong, &checkerNewLine)
을 사용하고 있습니다. 누군가을 삽입하려고하면 checkerNewLine
이 버퍼를 지우는 데 사용됩니다.왜 scanf llu가 % llu의 유효성을 검사하지 않습니까?
그러나 음수를 삽입하려고 시도하면 -541231
과 같이 scanf
이 성공하고 2를 반환합니다 (일치하는 매개 변수의 개수로). 분명히 myUnsignedLong
에 저장된 번호는 2^64-541231
이지만 내 의도는 아닙니다.
간단한 방법으로 해결할 수 있습니까? 감사 명세서에서 많은
그럼 의도는 무엇입니까? – haccks
@ haccks 아마도 OP는'scanf ("% llu")'가 음수를 분석하지 못하고 오류를 반환 할 것이라고 예상했다. – pburka