用c语言逐行将文本文件读入结构

用c语言逐行将文本文件读入结构,c,data-structures,text-files,C,Data Structures,Text Files,我对c编程有点陌生,但我想创建一个c函数,它可以逐行读取由制表符分隔符(\t)分隔的文本文件的内容,并将其存储到数据结构中,然后在清除文件后仍然失败。我的代码是 struct Busy_list{ int client_socket; char JOB[1024]; int characters; int No_jobs; int IsReplace; int Priority; }; char** PriorityEvaluator(int

我对c编程有点陌生,但我想创建一个c函数,它可以逐行读取由制表符分隔符(\t)分隔的文本文件的内容,并将其存储到数据结构中,然后在清除文件后仍然失败。我的代码是

struct Busy_list{
    int client_socket;
    char JOB[1024];
    int characters;
    int No_jobs;
    int IsReplace;
    int Priority;
};



char** PriorityEvaluator(int client_socket){
struct Busy_list Array;

FILE *Ufptr;
Ufptr = fopen("Unsorted_busy_list.txt","r+");
    for(int i;!EOF;i++){
        fscanf(Ufptr, "%d\t%s\t%d\t%d\t%d\n",&Array.client_socket,&Array.JOB,&Array.characters,&Array.No_jobs,&Array.IsReplace);
    }
    fclose(Ufptr);
}
我的未排序忙碌列表文件包含

/*

4   double fish 4   1   0

5   double praise   6   2   0

5   replace peter 2-o,4-o   5   2   1

*/

尝试将for循环替换为while循环,如下所示:

while((fscanf(Ufptr, "%d\t%s\t%d\t%d\t%d\n",&Arguments...)) != EOF){
}

这是一个错误。对于Array.Priority=Array.IsReplace。它应该为数组中的值设置优先级。isreplace这是否意味着我不应该担心原始数据之间的制表符(\t)?@MikeM您应该为for循环设置终止。我建议检查EOF(文件结尾)+在找到每个/t之前,必须将字符串读入struct元素。你的文本文件看起来怎么样?我已经编辑了我的问题,并添加了我的文本文件看起来怎么样。好的,我理解。我更新了我的答案。这应该能解决你的问题