繁体   English   中英

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

[英]quiz questions from txt file into array in c

我正在尝试将下面的行放入c中的数组中。 这是针对一个测验程序的,它以随机顺序询问10个问题(可能的15个问题)并跟踪得分,并在最后告诉用户他们的操作方式。

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

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

换句话说,格式为string; string; string; string; int

要么

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

我知道如何在C语言中逐行读取文件,但我不知道如何利用它们。 将一行分成多行。 此外,在用户选择自己的选择并按Enter键后,不确定如何保留此测验的分数。

显然,我应该定义一个结构来提出这些问题。

任何帮助将不胜感激。 是的,这是最后的一个项目,但是现在授课已经结束,我们的老师将不再在课余时间为学生提供帮助。

到目前为止,这是我所做的:

http://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. 定义选择数量(即数组的长度为2)的int。 在示例中,您可能可以将其硬编码为3。
  4. 定义正确答案的整数。

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM