如何【逐行】读取一个内容有一定格式的TXT文件
比较小白的我最近写的一个寝室管理系统,几天解决剩下这一个载入问题,如下是我存在txt中的格式需要进行读取再用insert函数载入,用空格分开的,最后用#来判断是否一段结束南一 101 男寝 4 4#
这是我的代码
程序代码:status load_dormitory(DorList d)
{
FILE *fp_dormitory;
int flag=0,i=0;
char ch;//判断用字符
char room_num[8];//这些都是为了拷贝用
char building_num[8];
char sex_type[8];
char total_str[5];
char left_str[5];
int total;
int left;
char filename[]="G:\\dormitory.txt";
if((fp_dormitory=fopen(filename,"r"))==NULL)
{
printf("无法打开文件%s进行载入\n",filename);
return ERROR;
}
while(!feof(fp_dormitory))
{
ch=fgetc(fp_dormitory);//逐个读取
if(ch!='#')
{
if(flag==0&&ch!=' ')
{
building_num[i]=ch;
i++;
}
else if(flag==1&&ch!=' ')
{
room_num[i]=ch;
i++;
}
else if(flag==2&&ch!=' ')
{
sex_type[i]=ch;
i++;
}
else if(flag==3&&ch!=' ')
{
total_str[i]=ch;
i++;
}
else if(flag==4&&ch!=' ')
{
left_str[i]=ch;
i++;
}
else if(ch==' ')
{
flag++;
i=0;
}
}
else
{
flag=0;
i=0;
total=atoi(total_str);
left=atoi(left_str);
printf("%s\n",building_num);
printf("%s\n",room_num);
system("PAUSE");
printf("%s\t%s\t%s\t%d\t%d\n",building_num,room_num,sex_type,total,left);
insert_dor(d,room_num,building_num,sex_type,total,left);//一个载入函数
}
}
fclose(fp_dormitory);
return OK;
}但是这样每个部分都有缀余的奇怪字符在后面,后来尝试了每行用fgets读取每行,再对每行进行格式的判断和读取,然而还是不行。。。有没有大神支个招,说个例子也好我去学习学习。。。卡了我一天多了
[此贴子已经被作者于2016-2-14 14:24编辑过]



