我已经尝试了几个小时将此文件读入我想在我的 C 编程项目中使用的结构。我无法让它与结构正常工作。
这是我要读入的文件:
# category
- word to guess
*information to help you to guess the word
- another word to guess
* information to help you to guess the word
# another category
- word to guess
*information to help you to guess the word
- another word to guess
* information to help you to guess the word
这是我的代码(似乎不起作用):
char retazec[50]; // here goes the read in string from the file
char kategoria[50]; // here the category name is stored
i = 0; // index for the array of structures
j = 1;
while (!feof(otazky)) {
fgets(retazec, 50, otazky);
if (strchr(retazec, '#') != NULL) {
printf("%s", retazec);
printf("%d\n", i);
slova[i].kategoria = retazec;
strcpy(kategoria, retazec);
}
if (strchr(retazec, '-') != NULL) {
printf("%s", retazec);
printf("%d\n", i-j);
slova[i-j].slovo = retazec;
j++;
}
if (strchr(retazec, '*') != NULL) {
printf("%s", retazec);
printf("%d\n", i-j);
slova[i-j].napoveda = retazec;
j++;
}
i++;
}
putchar('\n');
putchar('\n');
printf("%s", slova[0].kategoria);
printf("%s", slova[0].slovo);
printf("%s", slova[0].napoveda);
我希望它如何工作:
我有i
变量来存储结构数组的索引。该j
变量用于更正数组索引。
读取第一个字符串(#类别)
如果确实包含 a
'\#'
,请记住它是什么类别并将其放入slova[i].kategoria
(i
is 0)它检查其他两个并递增
i
读取第二个字符串(
-
要猜测的单词)第一个
if
是假的,在第二个中,如果字符串包含 a'-'
,则将其放入slova[i-j].slovo
(i
is 1,j
is 1 soi - j = 0
) 并且它会递增j
,因为在下一步中,当程序要读取信息以帮助用户时猜测,i
也将是 2,j
并i - j
再次给我们 0。正如我所想,这 3 个字符串应该在slova[0]
结构中。但它不起作用,我不知道为什么。
如果有人知道答案,请帮助我。