1
사용자가 정수 값만 명령 줄에서 getopt 옵션으로 전달했는지 확인하는 방법은 무엇입니까? 사용자는 양의 정수 값만 전달해야합니다.정수 값과 음수에 대한 getopt 오류 처리
Isdigit() 함수가 제대로 작동하지 않습니다.
case 's' :
flags=1;
start = atoi(optarg);
시작에 정수 값만 포함되어 있는지 확인하는 방법은 무엇입니까? 내가 atoi 함수 기능을 사용하고 있기 때문에 0으로 기본의 복용의 값으로
./prog -scf
는 임의의 문자가 입력 될 때 CF가 전달됩니다 여기에 실제로 오류를 제공해야합니다.
심지어는 strtol()을 시도했지만 아무 소용 start = (int) strtol(optarg, &ptr, 10);
내가 strtol 함수() 함수를 사용하는 경우에도, 그것은 숫자와 문자열을 모두 통과하는 경우에만 작동합니다.
여기서 다시 시작은 0을 취하고 전세 만 전달됩니다! 하지만 사용자 자체가 0을 전달하면 오류를 어떻게 처리 할 수 있습니까? 당신이 서명 숫자 작업으로
eg ./prog -s0 --> s takes 0 value, valid
eg ./prog -sabc --> s takes 0 value , but invalid
'(시작 <0) {...} 경우;'? –
"*가 제대로 작동하지 않음 *"이란 무엇을 의미합니까? – cdarke
참조 : [** 최소, 완전하고 검증 가능한 예제를 만드는 방법 **] (http://stackoverflow.com/help/mcve). –