segmentation fault

happilee12 Reply 9 years 30 weeks ago
어디서 틀린걸까요? runtime error, segmentation fault 라는데
booksky Reply 9 years 30 weeks ago
if(p==EOF) break; 이 부분이 틀렸습니다. scanf("%d", &p)로는 p에 EOF값을 입력받지 못합니다. 대신 EOF를 입력 받을 때 scanf의 return값이 EOF입니다. 그렇기 때문에 int check; check = scanf("%d", &p); if(check==EOF) break; 이런 식으로 코드를 작성해야 올바르게 작동할 것입니다.
happilee12 Reply 9 years 30 weeks ago
헐...신기하네요...... 그럼 EOF라서 scanf로 받아들이는걸 실패했을때 check 에 EOF가 들어간다는 말씀이세요?
booksky Reply 9 years 30 weeks ago
네. 그렇습니다. scanf에 대한 자세한 설명은 여기에 되어있습니다. http://www.cplusplus.com/reference/cstdio/scanf/