potocanon1234   2년 전

저의 생각은 scanf로 문제 조건인 문자개수N을 입력받고 그걸로 동적메모리를 할당했습니다.

그리고 숫자를 문자열로 입력받아서 동적할당메모리에 저장후

제 기억으로는 상수형태의 문자열은 변환인자로 수로 변경이 가능하다고 배웠던거 같아 (int)를 사용해서 sum에 합을 해봤습니다...

실행을 하니 입력이 1회만 진행되고 쓰레기 값이 출력되는거 같습니다.

scanf_s()로 입력하면 입력버퍼에 \n이 남아서 getchar같은 문자1개를 읽는 함수는 문제가 생긴다는 거는 아는데 문자열인데도 문제가 생기는게 의문입니다! 

djm03178   2년 전

scanf로 정수를 입력받고 나면 딱 그 정수만 읽고 그 뒤에 있는 개행 문자는 읽지 않습니다.

그 상태에서 fgets가 호출되면 fgets는 아까 읽히지 않았던 그 개행 문자 하나를 읽자마자 한 줄이 끝난 것으로 보고 바로 종료합니다. 그래서 두 번째 줄은 아예 읽지 않게 됩니다.

potocanon1234   2년 전

아 감사합니다!

댓글을 작성하려면 로그인해야 합니다.