请问一下,哪位大神告诉我,这错在哪了?为什么?
int graduate::InputGraduate(graduate **g1)
{
FILE *fp;
int j = 0;
fp = fopen("d:\\graduate.txt","r");
char* a;
int b;
bool c;
int d;
int e;
int f;
char* g;
int h;
if (fp == NULL)
{
return j;
}
static graduate *g2;
if(g2 == NULL)
{
return j;
}
for (int i = 0; i < MAX; i++)
{
// 错误就在if()条件里。为什么错了。
if ((fscanf(fp, "%s", &a) != EOF) && (fscanf(fp, "%d", &b) != EOF) && (fscanf(fp, "%c", &c) != EOF) &&
(fscanf(fp, "%d", &d) != EOF) && (fscanf(fp, "%d", &e) != EOF) && (fscanf(fp, "%d", &f) != EOF) &&
(fscanf(fp, "%s", &g) != EOF) && (fscanf(fp, "%d", &h) != EOF) && (fscanf(fp, "%s", &(g2 + i)->m_cProfessional) != EOF)
&& (fscanf(fp, "%s", &(g2 + i)->m_cTutor) != EOF))
{
(g2 + i)->SetS1(a, b, c , d, e, f, g, h);
j++;
}
else
{
return j;
}
}
*g1 = g2;
return j;
};
[解决办法]
(fscanf(fp, "%s", &g) != EOF)
g 是char *指针,不能再取地址