-1

我似乎在打开包含学生记录等信息的文件并使用我的结构打印它时遇到问题。

假设我在 txt 文件中有学生姓名、他们的 ID 和成绩,例如:

casnova 195843 A
and so on...

我将我的结构定义为:

struct student {
    char name[20];
    int ID;
    char Grade;
};

我想使用结构加载这个文件,我有点迷失了我应该做什么。

我的问题不是问如何做这个问题,而是基本上是一个起点,因为我对 C 编程还是很陌生,任何提示/链接都有帮助:)

4

2 回答 2

2

我的问题不是问如何做这个问题,而是基本上一个 起点

  • 定义一个数组struct student的数组char
  • 用于fopen打开文件
  • fgets在循环中使用一次while读取一行(这就是 char 数组的用途)
  • 用于sscanf提取所述行的组成成员。测试返回的值sscanf。或者,您可以strtok根据需要使用和转换令牌。
于 2012-05-14T11:31:49.983 回答
0

旧答案偏离主题并被删除。


没有注意到那是一个文本文件。

您可能想找到两件事的答案,或者您可能已经知道答案:

  1. 使用 fscanf 读取文本文件
  2. 将日期写入结构变量

如果文件中的内容类似于:

Tom 123 A
Dick 456 B

你用 . 打开文件fopen,然后得到一个FILE *叫做fp.

struct student s;

fscanf(fp, "%s %d %c", s.name, &s.ID, &s.Grade);

将用文件中的内容填充结构。

但是你必须确保文件的内容是正确的。或者您将不得不对文件的内容进行一些复杂的解析。

于 2012-05-14T11:31:48.690 回答