4

エラー: 数値定数の前に ')' が必要です

私のコードは正しいように見えますが、コンパイラは一貫してエラー メッセージを送信します。編集とコンパイルを1時間試みた後でも、まだエラーが見つかりません。ヘルプ?これは私のコードです:

void get_record()
{

    char record_num[LEN];
    int x, y;
    printf("Enter the record number of the Student Record to modify: ");
    fgets(record_num, LEN, stdin);
    {
        x = atoi(record_num);
        if (x>STUDENTS||x<=0)
        {
            printf("ERROR: Invalid Input. Input should be from 1-"STUDENTS".\n");
            printf("Enter the record number of the Student Record to modify: ");
            get_record();
        }
    }
    output();
    _z= x;
    i= (x-1);
    printf(LEV2"%3d     %25s    %9s         ", x, name[i], studno[i]);
        for (y=0; y<EXAMS; y++)
            {
            printf("%5s   ", exam_z[y]);
            y++;
            }
}

ヘルプ?

4

4 に答える 4

2

が文字列リテラルでない限りSTUDENTS(上記の int と比較するためそうではありません) 、次%dのように format specifier を使用して文字列に含める必要があります。

printf("ERROR: Invalid Input. Input should be from 1-%d.\n", STUDENTS);
于 2013-09-07T00:40:26.897 に答える
1

エラーステートメントが間違っていると思います。STUDENTS条件でも使用しているため、コンパイル時定数にする必要がありますif。だから、試してみてください -

printf("ERROR: Invalid Input. Input should be from 1-%d.\n",STUDENTS);
于 2013-09-07T00:40:29.660 に答える
0

この行で:

printf("ERROR: Invalid Input. Input should be from 1-"STUDENTS".\n");

" " を間違って使用します。" を文字列に入れたい場合は、毎回 \" を実行します。

これで問題ありません。

printf("ERROR: Invalid Input. Input should be from 1-\"STUDENTS\".\n");

または、STUDENTS の実際の値を出力したい場合:

printf("ERROR: Invalid Input. Input should be from 1-%d.\n",STUDENTS);
于 2013-09-07T00:39:07.997 に答える
0
printf("ERROR: Invalid Input. Input should be from 1-"STUDENTS".\n");

する必要があります

printf("ERROR: Invalid Input. Input should be from 1-"+STUDENTS+".\n");

隣接する文字列は、演算子で連結する必要があります+

編集

申し訳ありませんが、私は Java/C++ に慣れているため、C では機能しません。意図したとおりに printf を使用することをお勧めします。

printf("ERROR: Invalid Input. Input should be from 1-%d.\n",STUDENTS);

参照: printf ドキュメント

于 2013-09-07T00:40:50.903 に答える