밑에 search 함수에서 fscanf를 저따위로 썼는데 ... 코딩을하게되면
그 오류보고 알지??? 오류보고 가 뜨는데 어떻게해야되요?
#include <stdio.h>
int input(void);
int output(void);
int reset(void);
void search(void);
FILE* file;
struct excess
{
int mynumber;
char myname[20];
char *grade;
int point1;
int point2;
int point3;
int point4;
int point5;
}ex[100];
typedef struct excess exx;
exx ex[100];
exx * ptr;
//----------------------------------------------------------------------------------
int main(void)
{
int a;
while(1)
{
printf(\"\\n\\n============================MENUUU!!!!!!!!!!============================\\n\");
printf(\"1. input 2. load info 3. Reset 4.search 5. Out //choose one : \");
scanf(\"%d\", &a);
printf(\"========================================================================\\n\");
if(a==5)
{
printf(\"==============================GET===OUT!!!==============================\\n\");
break;
}
switch(a)
{
case 1:
input();
break;
case 2:
output();
break;
case 3:
reset();
break;
case 4:
search();
break;
default : printf(\"you\'ve got the wrong number!!\");
}
}
return 0;
}
//-------------------------------------------------------------------------------------------------
int input(void)
{
int i = 0;
printf(\"학번에 0을 입력시 Input종료\\n\");
while(1)
{
printf(\"학번 : \");
scanf(\"%d\", &ex[i].mynumber);
if(ex[i].mynumber==0)
{break;}
printf(\"이름 : \");
scanf(\"%s\", ex[i].myname);
printf(\"과목(1) : \");
scanf(\"%d\", &ex[i].point1);
printf(\"과목(2) : \");
scanf(\"%d\", &ex[i].point2);
printf(\"과목(3) : \");
scanf(\"%d\", &ex[i].point3);
printf(\"과목(4) : \");
scanf(\"%d\", &ex[i].point4);
ex[i].point5 = (ex[i].point2+ex[i].point2+ex[i].point3+ex[i].point4)/4;
file=fopen(\"excess.txt\", \"a+\");
printf(\"=================%d명 입력!!!!학번에 0을 입력시 Input종료================\\n\",i+1);
if(ex[i].point5>=90)
{
ex[i].grade=\"A+\";
}
if(ex[i].point5>=80 && ex[i].point5<90)
{
ex[i].grade=\"B+\";
}
if(ex[i].point5>=70 && ex[i].point5<80)
{
ex[i].grade=\"C+\";
}
if(ex[i].point5>=60 && ex[i].point5<70)
{
ex[i].grade=\"D+\";
}
if(ex[i].point5>=50 && ex[i].point5<60)
{
ex[i].grade=\"E+\";
}
if(ex[i].point5<50)
{
ex[i].grade=\"F\";
}
if(file == NULL)
{
printf(\"==============file open error!!===============\\n\\n\\n\\n\\n\");
return 1;
}
fprintf(file, \"%-10d%10s%10d%10d%10d%10d%10s\\n\", ex[i].mynumber, ex[i].myname, ex[i].point1, ex[i].point2, ex[i].point3, ex[i].point4,ex[i].grade);
fclose(file);
i++;
}
return 0;
}
//-----------------------------------------------------------------------------------------------------
int reset(void)
{
FILE* fil;
fil=fopen(\"excess.txt\", \"w+\");
fprintf(fil, \"\");
fclose(fil);
printf(\"==============================!!!RESET!!!==============================\\n\");
return 0;
}
//---------------------------------------------------------------------------------------------------
void search(void)
{
int f=0;
int i=0;
int b=0;
int c=0;
char * a[20];
file=fopen(\"excess.txt\",\"r\");
while(fscanf(file,\"%d %s %d %d %d %d %s\", ex[f].mynumber, ex[f].myname, ex[f].point1, ex[f].point2, ex[f].point3, ex[f].point4, ex[f].grade)!=feof(file))
{
fprintf(file, \"%-10d%10s%10d%10d%10d%10d%10s\\n\", ex[f].mynumber, ex[f].myname, ex[f].point1, ex[f].point2, ex[f].point3, ex[f].point4,ex[f].grade);
f++;
}
fclose(file);
printf(\"학번 검색은 1번, 이름 검색은 2번, 등급 검색은 3번 : \");
scanf(\"%d\",&b);
switch(b)
{
case 2 :
printf(\"\\n이름을 입력 : \");
scanf(\"%s\",a);
*a=(*ex).myname;
ptr=&ex;
printf(\"\\n 학번 이름 과목1 과목2 과목3 과목4 등급\\n\");
printf(\"%-10d%10s%10d%10d%10d%10d%10s\\n\", (*ptr).mynumber, (*ptr).myname, (*ptr).point1, (*ptr).point2, (*ptr).point3, (*ptr).point4, (*ptr).grade);
break;
case 1 :
printf(\"\\n학번을 입력 : \");
scanf(\"%d\",&c);
c=(*ex).mynumber;
ptr=&ex;
printf(\"\\n 학번 이름 과목1 과목2 과목3 과목4 등급\\n\");
printf(\"%-10d%10s%10d%10d%10d%10d%10s\\n\", (*ptr).mynumber, (*ptr).myname, (*ptr).point1, (*ptr).point2, (*ptr).point3, (*ptr).point4, (*ptr).grade);
break;
case 3 :
printf(\"\\n등급 입력 : \");
scanf(\"%s\",a);
*a=(*ex).grade;
ptr=&ex;
printf(\"\\n 학번 이름 과목1 과목2 과목3 과목4 등급\\n\");
printf(\"%-10d%10s%10d%10d%10d%10d%10s\\n\", (*ptr).mynumber, (*ptr).myname, (*ptr).point1, (*ptr).point2, (*ptr).point3, (*ptr).point4, (*ptr).grade);
break;
}
/*scanf(\"%d\",&i);
i=i--;
ptr=&ex[i];
*/
}
//------------------------------------------------------------------------------------------------------
int output(void)
{
FILE* file;
char kkk;
file = fopen(\"excess.txt\", \"rt\");
if(file==NULL)
{
printf(\"file open error!!\\n\");
return 1;
}
printf(\"\\n 학번 이름 과목1 과목2 과목3 과목4 등급\\n\");
while(1)
{
if(kkk ==EOF)
{
printf(\"\\n\");
break;
}
kkk = fgetc(file);
printf(\"%c\", kkk);
}
return 0;
}
잘모르겠어요
..................................아시는분없나요
..................................아시는분없나요
..................................아시는분없나요
서치가 문제면 메인하고 서치만 보여주든가 읽다가 스크롤 쫙 내렸다