所以我试图从循环中将值读入结构数组。这个文件有一个特定的已知输入,所以我想将每个值赋给结构数组中的特定槽。但是,每次我尝试运行它时,都会被告知循环行中的“行前预期表达式”。

typedef struct information
{
char Poke[100];
char Type[100];
char Evo[100];
float Height;
float Weight;
int HP;
int Attack;
int Defense;
int SPA;
int SPD;
int Speed;
} ROW[100];

int main()
{
     int i;
     FILE *ifp;
     //open file, set to ifp

    while(!feof(ifp))
    {
    j++;
    //Read and store all values
    fscanf(ifp, "%s %s", ROW[j].Poke, ROW[j].Type);
    fscanf(ifp, "%f %f", ROW[j].Height, ROW[j].Weight);
    fscanf(ifp, "%i %i %i %i %i %i", &ROW[j].HP, &ROW[j].Attack,
        &ROW[j].Defense,&ROW[j].SPA,&ROW[j].SPD,&ROW[j].Speed);
    fscanf(ifp, "%s", &ROW[j].Evo[0]);
    }
}

最佳答案

不能在这样的表达式中定义结构并声明数组。你需要把两者分开,就像这样:

typedef struct information
{
    char Poke[100];
    char Type[100];
    char Evo[100];
    float Height;
    float Weight;
    int HP;
    int Attack;
    int Defense;
    int SPA;
    int SPD;
    int Speed;
} ROW;

ROW rows[100];

然后在循环中使用rows

07-24 09:45
查看更多