【发布时间】:2016-10-28 13:55:32
【问题描述】:
我是编程的初学者,所以我只知道一些“基本”代码和方法来做事,所以在写答案时,请记住,我可能需要比人们通常在这个网站上需要的更多解释.谢谢!
我有一个家庭作业要做一个基于文本的冒险游戏。 我必须将文件中的文本读入程序中才能使用。
起初我以为我会在一行中写下“问题”, 该行之后的下 3 行将是具有 3 个“选择选项”的行。
使用这种方法,我必须创建 4 个字符串数组(questions、ans1、ans2 和 ans3),然后将每 4 行读入每个字符串(从不同的 c 行开始)。
我希望你们明白我想在这里做什么。但问题是,这可能吗?
如果是,那怎么办?
目前我有这段代码,但是如果我把它放在一个循环中(for/while/etc.),这会将每一行读入字符串,但这并不好,因为我只需要每第四行进入一个数组的字符串。 告诉程序,这有可能只读取文件的每 4 行吗?
我当前的代码是:
char questions[40][200];
FILE* fp;
fp=fopen("text.txt", "r");
int i;
for (i=0; i<=3; i++)
{
fgets(questions[i], 200, fp);
}
fclose(fp);
这会将前 4 行放入字符串中,这是不好的。在这种情况下,我想要字符串中的前 4 个问题。我应该如何更改我的代码来实现这一点?
【问题讨论】:
-
有一个计数器,最多读取并丢弃 3 个,存储第 4 个并重置。
-
无论如何,您都必须阅读每一行;您可以在阅读后决定忽略一行,但您仍然需要阅读它。您必须在文件上施加更多结构才能在不阅读中间行的情况下跳过。这是可能的,但比仅仅阅读和忽略线条要困难得多。
-
为什么不一次读完:1个问题,3个答案,然后重新开始。
-
@alk 你的意思是这样的吗?例如,这行代码会起作用吗? : for (i=0; i
-
取决于所有这些变量的定义方式。试试看吧!