我想创建一个数据库,将 5000 个名称和 5000 个对应工资的列表存储到一个数组中,我根本找不到问题,因为控制台崩溃或编译器给我以下错误:“无法转换” char* ( )[30]' 到 'char ' 用于参数 '1' 到 'char*' fgets(char*,int,*FILE)"。
编辑:我改变了我在代码中能找到的任何东西,我似乎特别对这一行有疑问:
person* TAB = calloc(N, sizeof(struct));
我无法发现其他错误(缺乏经验),而且我不确切知道该使用什么来代替 fgets 放入一行。
#include <stdio.h>
#include <stdlib.h>
#define N 5000
typedef struct {
char name[30]
int salary;
} person;
int main()
{
person* TAB = calloc(N, sizeof(struct));
FILE * input;
input = fopen("in.txt","r+");
int nr=0;
int r;
while(nr<5000)
{
fscanf(input,"%s",TAB[nr].name);
fscanf(input,"%d",TAB[nr].salary);
nr++;
}
printf("%s %d",TAB[1].name,TAB[1].salary);
fclose(input);
return 0;
}