안녕하세요 cin.getline 사용중 문제가 생겨 질문 드립니다.
글쓴이: facered79 / 작성시간: 수, 2006/04/05 - 3:35오후
char desc[256];
cout
usageAlarmType();
cout
cin >> (int)data.alarmType;
usageSeverityType();
cout
cin >> (int)data.severity;
cout
cin.getline(desc, 256); --------------------------------------------- (1) 이부분 건너 뜀
data.desc = (const char*)desc;
cout cin >> data.alarmPer;
소스가 위와 같은데요 (1)번에 보면 스트링으로 라인을 입력 받아 desc로 저장하는 그런 과정인데 실제 실행하면 저 과정을 생략하고 바로 (2)번으로 넘어가고 있습니다..
왜 이런건가요..
Forums:
아마도..
cin >> (int)data.severity;
에서 숫자를 입력하고 엔터를 치게 되겠죠?
여기서 뭔가 \n 정보가 버퍼에 남아있는게 아닌가 싶네요.
cin >> (int)data.severity;
다음에 입력스트림에 남아있는 \n 정보를 삭제해보시기 바랍니다.
cin.ignore('\n');
ignore() 는 처음 나오는 뉴라인까지의 데이터를 무시해버리는 멤버함수입니다.
-----
이글을 읽는 모든 이에게 평화가 함께 하기를... ^^;
-----
이글을 읽는 모든 이에게 평화가 함께 하기를... ^^;
제 생각에도..
cin.getline() 하시기전에 입력한 값에서 '\n'이 버퍼에 남아서 인듯 하네요.
그렇게 된다면 getline()은 엔터값만 받고 지나가게 됩니다.
위에 분 말씀대로 cin.ignore('\n') 하시거나,
cin.getline() 하시기전에 스트림의 버퍼를 초기화해보세요!! ^^
--------
I think I can!!
Google Talk::chanju_dot_jeon(at)gmail_dot_com
日新 日日新 又日新
Google Talk::chanju_dot_jeon(at)gmail_dot_com
댓글 달기