C语言关于fopen在函数中的使用
voidload_all_depts(dept_t**all_depts,char*filename){FILE*fp;intid;dept_t*a;dept_t*b=*...
void load_all_depts(dept_t **all_depts, char *filename)
{
FILE *fp;
int id;
dept_t *a;
dept_t *b=*all_depts;
fp = fopen(filename, "r"); //fopen中的参数正好是函数的参数,这时候该怎么办,这样写是错误的
if(fp == NULL)
{
perror("Cannot open filename.txt!");
exit(EXIT_FAILURE);
}
else
{
fscanf(fp,"%d",&id);
a=load_dept(id);
*all_depts=a;
while(!feof(fp))
{
fscanf(fp,"%d",&id);
a=load_dept(id);
*all_depts=a;
}
}
fclose(fp);
}
int main()
{
char a[20]="company.txt";
dept_t *all_depts=NULL;
load_all_depts( &all_depts, a);
print_dept(all_depts);
free_dept(all_depts);
}
其他几个函数的代码我都没放上来,就是说,当fopen中那个file的名字正好是函数传进来的参数时,格式该怎么写,上面我写的是不对的,最后fp==NULL了。 展开
{
FILE *fp;
int id;
dept_t *a;
dept_t *b=*all_depts;
fp = fopen(filename, "r"); //fopen中的参数正好是函数的参数,这时候该怎么办,这样写是错误的
if(fp == NULL)
{
perror("Cannot open filename.txt!");
exit(EXIT_FAILURE);
}
else
{
fscanf(fp,"%d",&id);
a=load_dept(id);
*all_depts=a;
while(!feof(fp))
{
fscanf(fp,"%d",&id);
a=load_dept(id);
*all_depts=a;
}
}
fclose(fp);
}
int main()
{
char a[20]="company.txt";
dept_t *all_depts=NULL;
load_all_depts( &all_depts, a);
print_dept(all_depts);
free_dept(all_depts);
}
其他几个函数的代码我都没放上来,就是说,当fopen中那个file的名字正好是函数传进来的参数时,格式该怎么写,上面我写的是不对的,最后fp==NULL了。 展开
1个回答
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询