如何【逐行】读取一个内容有一定格式的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编辑过]