我有以下結構更改結構陣列(從文件中讀取)
struct candidates
{
char name[20];
int votes;
};
struct candidates electionCandidates[];
我需要在從文件至7
我可以讀取和更新的名稱electionCandidates [0]用下面的方法這樣做
for (i = 0; i < 7; i++)
{
fgets(electionCandidates[i].name, 20, (FILE*)fp);
}
但我需要在函數中做到這一點。
我已經試過
void Initialize(struct candidates* EC[]);
Initialize(&electionCandidates);
void Initialize(struct candidates* EC[])
{
int i;
FILE *fp;
fp = fopen("elections.txt", "r");
for (i = 0; i < 7; i++)
{
fgets(EC[i].name, 20, (FILE*)fp);
}
fclose(fp);
}
口口聲聲說不會看到名稱。或者整個事情可能是錯的。我不確定。
任何幫助,將不勝感激。
'結構候選electionCandidates [7];','空隙初始化(結構候選EC []);','初始化(electionCandidates);' – BLUEPIXY 2014-09-04 19:00:14
的'electionCandidates'聲明在文件範圍具有空的方括號是可疑;你需要指定它的大小。您應該檢查文件是否成功打開。你應該總是檢查'fgets()'的結果來檢測早期的EOF。您將'fp'轉換爲'(FILE *)fp'的調用語法是多餘的,表示缺乏置信度。傳遞'&electionCandidates'傳遞一個指向數組的指針('struct candidates(*)[]'),而不僅僅是一個指針,就像你丟掉'&'一樣。 – 2014-09-04 19:01:17