도대체 뭐가 문제인걸까요

csh30096 Reply 9 years 31 weeks ago
음 출력 안하는거도 다 만들 제대로 돌아가는데 런타임 오류만 계속 뜨네요.... 뭐가 문제인걸까여
csh30096 Reply 9 years 31 weeks ago
런타임 에러 뜨는것 잡았는데 이제 롱앤서만 계속 뜨네요 음.... 뭐가 문제인거죠 다 제대로 돌아가는거 같은데 틀린 이유를 모르겠어요
pichulia Reply 9 years 31 weeks ago
자주하는 실수 중 하나이지요. scanf("%d",&n); gets(a); 얼핏보면 아무런 문제가 없어보이는 코드입니다. 허나 커서의 위치?를 생각해보면 문제가 생기는걸 알 수 있는데요... 데이터가 5\n 10 10\n 이렇게 들어왔다고 칩시다. 그럼 |을 커서의 위치라고 쳤을 때, 초기 상태는 |5\n 이고 scanf("%d",&n);을 통해 5를 읽고나면 커서의 위치는 5|\n 이렇게 됩니다. 이 상태에서 gets(a);를 하게되면 a에는 "10 10" 이 아닌 ""이 저장되는거죠...왜냐? \n이 나올때까지 읽는건데 커서 바로뒤에 \n이 반겨주고있네요ㅋㅋㅋ scanf("%d\n",&n); 이렇게 해결하거나 scanf("%c")등을 써서 \n을 제거해주셔야합니다.