2016-05-27 24 views
0

私は構造体配列にintを読み込もうとしていますが、コンパイルしようとすると '['の前に期待される式のエラーが発生しています。関数内で構造体配列に読み込むC++?

struct department { 
    int id; 
    char name[20]; 
}; 

int addnewdep(struct department[],int d); 
int main() 
{ 
..... 
} 
int addnewdep(struct department[],int d) 
{ 
    cin >> department[d].id; 
    cin >> department[d].name; 
} 

エラーが関数定義に表示されます。 このエラーを修正する方法がわかりません。これについての助けは素晴らしい、ありがとう。

+1

関数の定義にあまりにも多くのものがあります; – user463035818

+0

それは私のコードでも同じエラーであったので、それは修正されました。 – Soda

+0

'struct department'は型の名前です。宣言では動作しますが、定義にはパラメータ名が必要です: 'int addnewdep(struct department []、int d){...}'は 'int addnewdep(struct department department []、int d){ ...} 'あなたがそれを参照しているときに' department'という名前にしたいならば。 –

答えて

2

それは次のようになります。

int addnewdep(department dep[], int d) { 
    cin >> dep[d].id; 
    cin >> dep[d].name; 
    } 

部門は型の名前ではなく、関数のパラメータであるため。余分に注意してください。あなたのコードで。

定義の直前にaddnewdep()を宣言する必要はありません。

+0

ありがとうございました。ありがとうございました。しかし、私はそれをint addnewdep(struct department dep []、int d)の定義とプロトタイプに変更したときにエラーを修正しました。ありがとうございました。 – Soda

+0

'struct keyword'が必要です:' struct department dep [] '。 –

関連する問題