用c语言逐行将文本文件读入结构
我对c编程有点陌生,但我想创建一个c函数,它可以逐行读取由制表符分隔符(\t)分隔的文本文件的内容,并将其存储到数据结构中,然后在清除文件后仍然失败。我的代码是用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
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元素。你的文本文件看起来怎么样?我已经编辑了我的问题,并添加了我的文本文件看起来怎么样。好的,我理解。我更新了我的答案。这应该能解决你的问题