我在读取 C 中的二维字符串数组时遇到了麻烦。我有一个文本文件,其布局为:姓名、爱好数量(H)、爱好名称。所以阵列是由爱好的数量决定的。
#include <stdio.h>
#include <string.h>
typedef struct{
char name[10];
int H;
char hobbi[20];
} data;
int main(void) {
data person[50];
FILE *input;
char source[]=("data.txt");
inout=fopen(source,"r");
int i=0;
int j;
while(!feof(input)) {
fscanf(input, "%s", person[i].name);
fscanf(input, "%d", person[i].H);
for(j=0; j<=person[i].H; j++){
fscanf(input, "%s", person[i].hobbi[j]);
}
i++;
}
fclose(input);
getchar();
getchar();
return 0;
}
我有一个 .txt 文件,如下所示:
Jason 3 basketball bowling cycling
Arnold 2 boxing rollerskating
Mary 2 basketball rollerskating
Anne 3 bowling boxing basketball
该程序的目标是,当您输入一个爱好的名称时,它会为您提供一个名称列表,这些名称具有该爱好的共同点。但首先,我试图让输入部分正确。我将这部分代码翻译成英文,所以我希望没有任何错误会破坏代码。任何帮助深表感谢 :)