초기값 입력시 오류
윤슬이뿌잉
질문 제목 : 질문 내용 :다음과 같은 소스에 초기값을 입력받는데 오류가 발생합니다.
for(;;)
{
cout 초기정보를 입력하시겠습니까?(yes : 1 / no : 0)endl;
int sel;
cinsel;
if(sel==1)
{
int num;
cout 초기정보 입력을 원하시는 학생의 번호를 입력하시오.(0 ~ 19)\nendl;
cinnum;
cout학생 성명 입력 : ;
cininfo[num].name;
cout\n학생 id 입력 : ;
cininfo[num].s_id;
cout\n학생 나이 입력 : ;
cininfo[num].age;
cout\n학생 학년 입력(학부1년 ~ 대학원2년) : ;
cininfo[num].class_year;
cout\n학생 수강 완료 과목(ex/ 논리회로 객체1 객체2 공수1 공수2 ... 입력바람) : \n;
for(int i=0; i19; i++)
{
scanf(%s , co[num].s[i]);
//cinco[num].s[i];
}
coutinfo[num]의 학생 초기정보가 입력되었습니다.\nendl;
}
else if(sel==0)
break;
}실행하면 우선 처음 한번은 잘 됩니다. 그리고 다 입력하고 나서 for(;;) 무한루프때문에 처음으로 돌아가야되는데
막 지나가서 이렇게 출력이 됩니다
info[0-0번쨰 학생 넣었다고 가정]의 학생 초기정보가 입력되었습니다.
초기정보를 입력하시겠습니까?(yes : 1 / no : 0)
초기정보 입력을 원하시는 학생의 번호를 입력하시오.(0 ~ 19)
학생 성명 입력 :
학생 id 입력 :
학생 나이 입력 :
학생 학년 입력 :
학생 수강 완료 과목(ex/ 논리회로 객체1 객체2 공수1 공수2 ... 입력바람) : 이렇게 출력되고 수강완료과목부터 입력받게 되더군요;;;
모가 잘못된건지 모르겠어요 ㅜㅜ
수강완료 과목은 string s[20]으로 문자열을 받게 설정했습니다.
for(int i=0; i19; i++)
{
scanf(%s , co[num].s[i]);
//cinco[num].s[i];
}
부분만 뺴면 잘 돌아갑니다// ㅜㅜ 구조체 배열로 과목을 받을 공간을 할당한거에요
추가질문;;; 이미 수강한 과목을 최대20과목까지 입력받고싶은데
저렇게 for로 돌려서 입력하면 무조건 20과목을 써야 되잖아요
20과목이 꽉 안차더라도 몇과목만 차더라도 넘어갈 수 있는 방법이 없을까요?
추가질문;;; 왜 구조체 배열에서 cinco[num].s[i]; 로 쓰면
error: 이러한 피연산자와 일치하는연산자가 없습니다. 라고 나올까요???????
form style=margin: 0px onsubmit=javascript:ocafetagread.updatearticletag() method=post name=tagform/form
-
아더
cin에서는 배열로 받을 때
char array[256]; 일때
cin array; 라고 해요. 뒤에 문자들이 들어갈 배열 인덱스를 안 쓴다는 거죠.