2012-05-14 41 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