파일안에서 자료 정렬
봉봉
void lineup(FILE *fp)
{
FILE *fp1;
fp1=fopen(aaa.txt,w);
int count=0;
int select;
data buf1;
data buf2;
data buf3;
printf(===================\n);
printf(1. 이름\n2. 학번\n3. 학점\n);
printf(===================\n);
printf(정렬기준입력:);
scanf(%d,&select);
if(select==1)
{
while(!feof(fp))
{
if(fread(&buf1,sizeof(buf1),1,fp)1)break;
while(!feof(fp))
{
if(fread(&buf2,sizeof(buf1),1,fp)1)break;
if(strcmp(buf1.name,buf2.name)0)
{
buf3=buf1;
buf1=buf2;
buf2=buf3;
}
}
//fwrite(&buf1,sizeof(buf1),1,fp1);
//count++;
fprintf(fp1,%d.\t%d %s %d %lf\n,count++,buf1.id,buf1.name,buf1.age,buf1.grade);
fseek(fp,sizeof(buf1)*count,SEEK_SET);
}
printf(이름순으로 정렬완료!!\n);
}
fclose(fp1);
}
fp에 서읽어온 구조체 자료를 가지고 구조체안에 있는 변수 로 오름차순이나 내림차순으로 정렬 해서 fp1에 입력
하려고합니다. 저렇게 아무리 생각해도 잘안되는데 왜안되나요? 저렇게 하면 아래 처럼 입력이되어버립니다.
0.91216514 강동훈 24 3.490000
1.91216514 강동훈 24 3.490000
2.91216514 강동훈 24 3.490000
3.91216514 강동훈 24 3.490000
4.90916796 강인택 22 2.210000
5.90916796 강인택 22 2.210000
6.90916796 강인택 22 2.210000
7.90916796 강인택 22 2.210000
8.90916796 강인택 22 2.210000
9.90916796 강인택 22 2.210000
10.99017878 권영철 21 3.620000
11.99017878 권영철 21 3.620000
12.99017878 권영철 21 3.620000
13.99017878 권영철 21 3.620000
14.99017878 권영철 21 3.620000
15.99017878 권영철 21 3.620000
16.99017878 권영철 21 3.620000
17.99017878 권영철 21 3.620000
18.99213990 김은영 20 3.020000
19.99213990 김은영 20 3.020000
20.99213990 김은영 20 3.020000
21.99213990 김은영 20 3.020000
22.99213990 김은영 20 3.020000
23.99213990 김은영 20 3.020000
24.99213990 김은영 20 3.020000
25.99213990 김은영 20 3.020000
26.99213712 양민호 21 3.110000
{90916990,임경묵,20,3.03},
{92017727,장현석,21,3.12},
{91017519,김상호,22,3.21},
{91216514,강동훈,24,3.49},
{90023594,김진형,20,3.58},
{90816889,강주영,21,3.67},
{91012545,박종욱,22,3.76},
{93017533,김정석,23,3.85},
{91017397,정주영,21,2.12},
{90916796,강인택,22,2.21},
{92216674,안승기,23,2.30},
{91017524,오현우,24,2.49},
{93017371,방훈,20,2.58},
{97022239,이태현,21,2.67},
{91216251,정보람,23,2.85},
{91017678,이수영,24,2.94},
{91017566,박태현,20,3.53},
{99017878,권영철,21,3.62},
{91023522,이재민,22,3.71},
{90817225,조동원,23,3.80},
{91216063,정수현,24,3.98},
{95012636,유관희,20,2.57},
{90817285,하성동,22,4.50},
{96916233,김혜택,23,2.84},
{90716283,심언용,24,2.93},
{99213990,김은영,20,3.02},
{99213712,양민호,21,3.11 이건 fp 에 입력된 자료입니다.