我试图将下面的行放入c中的数组中。这是一个测验程序,它以随机顺序询问10个问题(可能有15个问题)并跟踪分数并告诉用户他们最终如何做。
这是我的文本文件中一行格式的示例:
加拿大的官方语言不是什么;英语;法语;西班牙语; 3
换句话说,format是string; string; string; string; int
或
问题;选择-a;选择-b;选择-c;正确答案
我知道如何在C中逐行读取文件,但我不知道如何利用这些文件;将一行划分为多行。此外,在用户选择他们作为int并选择输入后,不确定如何保持此测验的分数。
显然,我应该定义一个结构来呈现这些问题......
非常感谢任何帮助。是的,这是一个最终项目,但现在讲座已经结束,我们的老师不会在课余时间之外为学生提供帮助。
这是我到目前为止所做的:
答案 0 :(得分:1)
因为这是一个课程,我不知道你的导师是否要你使用低技术方法,但我会使用像sscanf这样的问题来解决这个问题。你可以这样做:
int number;
char fruit[16];
char line[]="I ate 3 bananas.";
sscanf(line, "I ate %d %s.", &number, fruit);
它会相应地更新你在sscanf函数中指向的变量。
答案 1 :(得分:1)
由于这是一个课程项目,我将只提供一般指导。我建议您查看strtok
函数,使用文本文件中的行作为字符串和“;”作为代币。示例和文档可用here。重复调用此功能可以将您的行划分为多个段。
至于结构要求,一种明智的方法是用这些成员创建一个结构:
您可以为文本文件中的每一行创建结构实例。
答案 2 :(得分:0)
你需要的可能是一个标记器。 您可以查看此处的讨论Using strtok in c。列出了一些代码片段,在我看来,对您的案例非常有帮助。