C:如何创建一个fscanf循环,将文件中的元素分配到结构中
我需要创建一个将元素从文件复制到结构的函数。 我很难创建一个循环来分配第二行代码,第三行。。。在这里分配一个整数之前,游戏->单词[b]。名称[c]。使用函数读取整数、字符和一系列字符是否更好C:如何创建一个fscanf循环,将文件中的元素分配到结构中,c,C,我需要创建一个将元素从文件复制到结构的函数。 我很难创建一个循环来分配第二行代码,第三行。。。在这里分配一个整数之前,游戏->单词[b]。名称[c]。使用函数读取整数、字符和一系列字符是否更好 int loadgame(GAME *game){ FILE *fptr; int ch,a,b=0,c=0,i=0,j=0; fptr = (fopen("saveGame0.txt", "r")); pr
int loadgame(GAME *game){
FILE *fptr;
int ch,a,b=0,c=0,i=0,j=0;
fptr = (fopen("saveGame0.txt", "r"));
printf("Error opening file");
exit(1);
}
else{
for(a=0;a<2;a++){
while((ch = fgetc(fptr)) != ';'){
game->players[a].name[i]=ch;
i++;
}
fscanf(fptr, "%d", &game->players[a].points);
fseek(fptr,1,SEEK_CUR);
while ((ch = fgetc(fptr)) != '\n'){
game->players[a].hand[j].letter = ch;
j++;
}
}
fscanf(fptr,"%d", &game->word_count);
fseek(fptr,1,SEEK_CUR);
}任何使用
fseek
读取简单数据序列的程序,并且不注意文件输入函数的返回值,可能需要重写。我看不到您以'\0'
终止任何似乎正在读取字符串的数据项。但事实上,请试着找出问题所在。显示一些预期输入和实际输入的示例。fscanf()
,fseek()。检查输入函数的返回值。这不是检查函数的返回值。对于每个fscanf()
,使用类似于if(1!=fscanf(fptr,“%d”,&game->words[b].row)){put(“Failed”);exit(-1);}
。对于fseek()?
while((ch = fgetc(fptr)) != ';'){
game->words[b].name[c]=ch;
c++;
}
fscanf(fptr,"%c", &game->words[b].orientation);
fseek(fptr,1,SEEK_CUR);
fscanf(fptr,"%d", &game->words[b].row);
fseek(fptr,1,SEEK_CUR);
fscanf(fptr,"%c", &game->words[b].col);
fseek(fptr,1,SEEK_CUR);
fscanf(fptr,"%d", &game->words[b].points);
fseek(fptr,1,SEEK_CUR);
fscanf(fptr,"%d",&game->words[b].player);
fseek(fptr,1,SEEK_CUR);
}
}
fclose(fptr);
return 0;