2013-11-15 42 views
0

我知道我可能忽略了一些非常簡單的事情,但我即將在這裏瘋狂。「當使用getline和分層結構時,」struct main()「的使用無效

到目前爲止,我還沒有getline的問題,直到層次結構。

當我有

struct top_level 
{ 
    struct employee_name 
    { 
     string employee_title; 
     string first_name; 
     string last_name; 
    }; 

    struct employee_address 
    { 
     string num_street; 
     string city_state; 
     string zip_code; 
    }; 

    struct employee_phone 
    { 
     string home_phone; 
     string cell_phone; 
     string work_phone; 
    }; 
}; 

struct top_level employee_1; 
getline (inFile, employee_1.employee_name.employee_title); 

(被讀取的值是字符串)

的FILESTREAM工作好了,但在編譯時,我得到的錯誤是

"error: invalid use of ‘struct main()::top_level::employee_phone’"

每一個函數getline;它似乎有一箇中間層結構的問題。

我不是要求任何人寫我任何代碼,我只是被這個錯誤難住。

如果有人有任何想法,我會很感激。

回答

1

您的struct top_level聲明瞭子結構,但沒有成員。你需要寫

struct top_level 
{ 
    struct employee_name 
    { 
     string employee_title; 
     string first_name; 
     string last_name; 
    } employee_name; 

    struct employee_address 
    { 
     string num_street; 
     string city_state; 
     string zip_code; 
    } employee_address; 

    struct employee_phone 
    { 
     string home_phone; 
     string cell_phone; 
     string work_phone; 
    } employee_phone; 
}; 
2

您的班級top_level爲空,即它沒有數據成員。它只有幾個成員類型

+0

是否聲明 結構TOP_LEVEL employee_1; 雖然沒有解決這個問題嗎? – user2945132

+0

@ user2945132不,那只是創建一個空類「top_level」的實例。 – juanchopanza

+0

噢,好的;所以我會通過以某種方式聲明子結構來彌補這一點? – user2945132

1

您的top_level結構不包含數據成員。它只包含類型定義。