-1
숫자를 입력하고 isdigit으로 테스트하면 항상 false를 반환합니다. 이유는 무엇입니까?isdigit()가 작동하지 않습니까?
#include <iostream>
using namespace std;
int main() {
int num;
cin >> num;
if(isdigit(num))
cout << "Is a number";
else
cout << "That is not a number";
}
샘플 입력 : 1 isdigit
의 의도는 그것이 ASCII 숫자인지 여부에 대한 문자을 확인하는 것입니다 때문입니다
두 번째 예제에는 정의되지 않은 동작이 있으며 일반적으로 어쨌든 컴파일되지 않습니다. –
@JamesKanze clang과 gcc 모두에서 나를 컴파일하고 정의되지 않은 동작은 무엇입니까? – Barry
@ 배리 : 글쎄, 당신은')'이 빠졌고'...'는 유효하지 않습니다. 'std'의 문자가 <0이면'isdigit' 호출은 UB입니다. 'str'은'char'을 포함하고 있지만'isdigit'는 유효한'unsigned char' 표현이 필요합니다. 현실적으로, 당신이이 문제에 부딪 힐 것이라는 말은 정말 미안합니다. –