测验问题从TXT文件到数组中的c



我正在尝试将下面的行转换成c中的数组。这是一个测验程序,它以随机顺序提出10个问题(可能有15个问题),并跟踪得分,最后告诉用户他们的表现。

下面是我的文本文件中一行格式的示例:

什么不是加拿大的官方语言;英语;法语;西班牙语;3

格式为string;string;string;int

问题;选a, b, c,正确答案

我知道如何在C中逐行读取文件,但我不知道如何利用这些;把一条线分成多条线。此外,在用户选择他们的选择作为int并按enter键后,不确定如何保持这个测验的分数。

显然,我应该定义一个结构体来呈现这些问题…

任何帮助都将非常感激。是的,这是一个期末项目,但是现在课程结束了,我们的老师将不会在课外时间给学生提供任何帮助。

到目前为止我所做的是:

https://i.stack.imgur.com/E8LtH.png

因为这是一门课,我不知道你的老师是否希望你使用低技术的方法,但我会使用像sscanf这样的东西来解决这样的问题。你可以这样做:

int number;
char fruit[16];
char line[]="I ate 3 bananas.";
sscanf(line, "I ate %d %s.", &number, fruit);

并相应地更新您在sscanf函数中指向的变量

由于这是一个类项目,我将只提供一般指导。我建议您查看strtok函数,使用文本文件中的行作为字符串,并使用";"作为标记。示例和文档可以在这里找到。重复调用此函数将允许您将您的行划分为段。

对于结构体要求,明智的方法是创建具有以下成员的结构体:
  1. 包含问题的字符串(char*)。
  2. 一个包含选项的字符串数组。
  3. 一个定义选择数的int(即2中数组的长度)。你可以在你的示例中将其硬编码为3。
  4. 定义正确答案的整型。

您将为文本文件中的每一行创建一个结构体实例。

您需要的可能是一个标记器。您可能想看看这里的讨论,在c中使用strtok。列出了一些代码片段,在我看来,这对您的情况非常有帮助。

相关内容

  • 没有找到相关文章

最新更新