ファイルから読み取った特定の変数が整数でないかどうかを確認しようとしています。そうでない場合は、それらを無視してエラーメッセージの出力を続行します。そのため、変数が int であるかどうかを確認するために isdigit() を使用しており、ある意味で「逆方向」に機能し続けています。
int parseStudent(struct student *person, char *data){
char *ptr;
int temp;
int i = 0;
ptr = strtok(data, DELIM);
temp = atoi(ptr);
if(isdigit(temp)){printf("Invalid TERM integer!\n");}
//if(!isdigit(temp)){printf("Invalid TERM integer!\n");}
//person[i].term = temp;
ptr = strtok(NULL, DELIM);
person[i].id = atoi(ptr);
ptr = strtok(NULL, DELIM);
strcpy(person[i].lastname, ptr);
ptr = strtok(NULL, DELIM);
strcpy(person[i].firstname, ptr);
ptr = strtok(NULL, DELIM);
strcpy(person[i].subjectname, ptr);
ptr = strtok(NULL, DELIM);
person[i].catalog = atoi(ptr);
ptr = strtok(NULL, DELIM);
strcpy(person[i].section, ptr);
}
最初のチェックでわかるように、私の意図は、最初の一時 int (int を保持すると想定されているため、"1301" を実行します) が実際に整数であるかどうかを確認することです。コメントを外した行を使用すると、条件に失敗し、何も出力されません。コメント行を使用すると、エラー メッセージが出力されます。逆じゃないですか!? これらの int と文字列が実際に int と文字列であることを確認し、顔にエラーを報告するにはどうすればよいですか?