2012-05-14 33 views
-1

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

说我有学生姓名,他们的ID和等级的txt文件如:

casnova 195843 A 
and so on... 

我定义我的结构为:

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

我想加载使用结构这个文件,对于我应该做的事我有点失落。

我的问题是不问如何做的问题,但基本上是一个起点,因为我仍然相当新的C++编程,任何提示/链接是有帮助:)

+1

嗯没有什么真正有用的,我真的不知道该怎么做:\ – user1393599

+0

你不想把这个问题标记为家庭作业吗? :p它看起来像...... –

+0

@ user1393599,从你的回答中,我知道你缺乏非常基本的知识。在stackoverflow上提出问题不会让你的任何地方,因为没有人想写一百页的教程一切!我的建议是从你的图书馆拿一本关于C的书,并开始阅读和从头开始学习。 – Shahbaz

回答

0

旧的答案是题外话,并删除。


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

您可能希望找到的两件事情的答案,或者你可能已经知道了答案:用的fscanf

  • 写日期

    1. 读取文本文件结构变量

    如果文件中包含以下内容:

    Tom 123 A 
    Dick 456 B 
    

    并且您使用fopen打开文件,并获取名为fpFILE *

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

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

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

  • +0

    那到底是什么呢? – user1393599

    +0

    ??评论与答案不太一致。答案是否完全被删除和编辑? –

    +0

    我想读一个文件中的信息,并使用结构打印出来,我完全失去了我应该做的事情:( – user1393599

    2

    我的问题是不问如何做的问题,但基本上是 起点

    • 定义的struct student阵列的char
    • 使用fopen阵列来打开文件
    • 使用fgetswhile循环中读取一行一段时间(这就是char数组的用途)
    • 使用sscanf来提取所述行的组成成员。测试sscanf返回的值。或者,您可以使用strtok并根据需要转换令牌。
    +0

    嗯,我不太遵循。说我有3个不同的学生,我'在列表顶部有'3',是否可以读取该值并重复多次循环?我如何正确定义结构数组? – user1393599

    +0

    可以给我另一个提示吗?我被卡住了!啊哈。 – user1393599