2014-02-06 38 views
0

Hej!我需要能夠從每行一個文件中的5個變量來讀取,該行被格式化爲等以不同的名稱如何從文件中讀取多個名稱和數字?

MIKE   ,CHENAULT  , 82 , 24 , 90 

我似乎無法弄清楚如何在每一個字和整數分別讀取,我想關於使用字符數組的第一個名字,因爲我需要再輸出他們像這樣

Jones,J ----- 95 

數量將通過公式來計算,但我不知道如何從一個行搶5個不同的變量。任何幫助將非常感激!

回答

0

我會推薦使用一個Person類,它包含名字,姓氏和三個數字作爲數據成員。然後,你可以定義你可以用它來方便輸入的提取:

struct Person 
{ 
public: 
    friend std::istream& operator>>(std::istream& is, Person& p); // for input 
    friend std::ostream& operator<<(std::ostream& os, const Person& p); 
                    // for output 
private: 
    std::string first, last; 
    int a, b, c; 
}; 

// definition of the extractor 
std::istream& operator>>(std::istream& is, Person& p) 
{ 
    char comma; 
    is >> p.first >> comma >> p.last >> comma; 
    is >> p.a  >> comma >> p.b >> comma >> p.c; 

    return is; 
} 

現在你可以創建你的陣列(或向量)持有1000個Person實例:

std::vector<Person> v; 

Person p; 
while (file >> p) 
{ 
    v.push_back(p); 
} 

後來,當你想做一個輸出,你可以使用你定義的插件。例如:

std::cout << v[5]; 
+0

好了空格並不重要,但將在CTYPE類忽略「」還是不明白怎麼會搶(第一持續,B,C),除非這個「如果(文件>>第一>>最後>> a >> b)「是嗎? – ThereFour

+0

@ user2967151是的,它也會忽略逗號。 – 0x499602D2

+0

vector和v聲明爲什麼?和哪裏?也是「文件」你的ifstream變量? – ThereFour

相關問題