读取txt文件到结构体数组,当读取的txt文件很多行时括号里该怎么填啊,求大神解惑?

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
struct user_rating
{
    char userID[];
    char movieID[];
    char rates[];
    
};

int main()
{
    FILE *fp=NULL;
    int i=0,j;
    struct user_ratings UR[];
    if((fp = fopen("user_ratings.txt","r")) == NULL)
    {
        printf("Can't open it");
        exit(EXIT_FAILURE);
    }
    
    while(!feof(fp))
    {
        fscanf(fp,"%d,%d,%f",&UR[i].userID,&UR[i].movieID,&UR[i].rates);
        i++;
    }
    
    j=i;
    for(i=0;i<j;i++)
    printf("%d,%d,%f\n",UR[i].userID,UR[i].movieID,UR[i].rates);
    fclose(fp);
    return 0;
 } 

 

指针学过了吗?

你可以通过获取文件内容的字节数,直接开辟那么大的内存空间,模拟结构体数组使用。

定义一个容量 #define sizeof 10000

 

最好的方式是用链表进行存储,因为不确定内存有多大,如果你数组申请的过大,有可能程序会出现运行错误.

有点懵,我还没学链表