1
のユーザー入力文字列の形式が "%d /%d /%d /%d /%d"であることを確認します。sscanf()
を使用して文字列の形式をチェックしようとしました。書式がマッチしていなくても、エラーは表示されません。私は何が間違っているのか分からない。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の形式ではないので、エラーが出るはずです。 –