1
sscanf()
을 사용하여 문자열의 형식을 검사 해 보았습니다. 형식을 잘못 지정하지 않아도 오류를 인쇄하지 않습니다. 나는 그것이 무엇이 잘못되었는지를 모른다.사용자 입력 문자열이 "% d/% d/% d/% d/% d"형식인지 확인하십시오. C
char *now = 1; // assume this is the user-entered string
int year,month,hour,min,sec;
//CHECKING IF THE ARGUMENT IS CORRECT OR NOT
if (sscanf(now,"%d/%d/%d/%d/%d\n",&year,&month,&hour,&min,&sec) == 0)
{
fprintf(stderr,"\x1b[1;31mMust specify correct format\nExiting........\x1b[0m\n");
_exit(1);
}
나는'char * now = 1'이 무엇을 기대하는지 잘 모르겠습니다. 포인터를 1로 초기화하려고합니까? – ryyker
... 또는 마지막 댓글에 피기 백킹, _ [this sscanf documentation] (https://www.tutorialspoint.com/c_standard_library/c_function_sscanf.htm) _에 따라 'EOF'를 확인하십시오. – ryyker
@ryyker 예. char * now = 2000/300/2라고 가정합니다. % d/% d/% d/% d/% d 형식이 아니기 때문에 오류가 발생합니다. –