これらの作業ではないことは、私が取得していますエラーです。ここはatoi関数を使用しようとは
search.c: In function ‘checkGrades’:
search.c:63: warning: passing argument 1 of ‘atoi’ makes pointer from
integer without a cast
/usr/include/stdlib.h:148: note: expected ‘const char *’ but argument is
of type ‘char’
search.c:63: error: expected ‘)’ before ‘;’ token
は私のコードです:
int checkGrades(STUDENT grades[], int maxrecs, FILE* fp)
{
char line[LINE_MAX];
int rc;
int count = 0;
int score;
char id;
while(fgets(line,LINE_MAX, fp) != NULL)
{
rc = sscanf(line,
"%25[^:]%*c%25[^:]%*c%6s%*c%3d%*c%3d%*c%3d%*c%3d%*c%3d%*c%2c",
grades[count].id,
&grades[count].score[1],
&grades[count].score[2],
&grades[count].score[3],
&grades[count].grade);
if((rc != 9) ||
rc == atoi (id);
grades[count].id < 100000 ||
grades[count].id > 999999 ||
grades[count].grade < 0 ||
grades[count].grade > 110)
{
printf("Invalid Record: %s", line);
}
else
{
count++;
if(count == TNARRAY_MAX)break;
}
printf("ID: ", grades-> id);
}
イムRCをすることになってイム何であれば、本当にわかりませんatoiのために、私は初心者のCとiveのために成功なしで多くのコンボを試しました。私は比較する前に文字列をintに変換する必要があることを知っていますが、ここでそれを行う方法はかなり失われています。 ご協力いただければ幸いです!
'atoi'の最初の引数は' char * 'の文字列になっています。 'id'は' char'ではなく 'char'です。 – Barmar
あなたは決して 'id'も設定しません。 – Barmar
'(rc!= 9)||'が '||'の後に別の条件を見つけていない場合 – Barmar