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