0
セクション内のファイルの内容を使用可能な構造体に読み込もうとしていますが、 '#'記号はセクションを開始し、 '。'記号はそれを終わらせる。例は次のようになります。セクションでファイルの内容を読む
# Type name
bird
mammal
.
# Type effectiveness
VeryEffective
NotEffective
.
これまでのところ、私は第一のタイプの内容を読み取ることができますが、私は2番目の内容を読み取るしようとしたとき、私は最初の再読み込みの内容に保ちます。
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main() {
typedef struct
{
char types[1000];
char effectiveness[1000];
} sinFile;
sinFile record[1000];
FILE* file;
char line[121];
char period[10];
char Type2[20];
char* item;
char* item2;
int i = 0;
int j;
file = fopen("Test3.txt", "r");
while(fgets(line, 120, file)) {
item = strtok(line, " ");
strcpy(period, ".");
strcpy(Type2, "# Type effectiveness");
if (item[0] == '#' || item[0] == '.') {
continue;
} else {
do {
strcpy(record[i].types, line);
i++;
} while (strcmp(record[i].types, period) == 0);
}
for(j=0; strcmp(line, Type2) == 0; j++) {
do {
strcpy(record[j].effectiveness, line);
j++;
} while (strcmp(record[j].effectiveness, period)== 0);
}
}
fclose(file);
printf("%s", record[1].effectiveness);
}
現在、record [1] .typesはrecord [1] .effectivenessと同じ結果を返します。すなわち「哺乳動物」である。私は近くにいるように感じますが、どのように進むべきかわかりません。
Fyi、「#タイプ有効性」は、** 21 ** **の文字数で、ターミネータを含みます。 'Type2'配列に違反しています。 – WhozCraig
ファイルには常に1行に1語がありますか? – RoadRunner
テストするために、私はファイルを簡略化しましたが、 '#Type effective'の内容だけが複数の単語を含んでいます。 – burnsieXD