엔터를 입력할떄까지 배열에 정수를 저장하는 c소스에대해 질문드립니다.

jh20s의 이미지

c언어 엔터가 입력할때까지 정수를 받는 코드를 작성중인데 문제가 생겨 질문해요

do {

scanf("%d", &arr[n]);

n++;

} while (getc(stdin) == ' ');

이 걸로 했을경우 1 2 3 4 이렇게 입력을 받으면 1 2 3 4가 arr배열에 저장이 되요

그런데 엔터만 입력시 종료를 할수가 없어요.

그걸 수정하려고

if (getc(stdin) != '\n')

{

do {

scanf("%d", &arr[n]);

n++;

} while (getc(stdin) == ' ');

}

이렇게 바꿔봤더니 맨처음에 getc에서 엔터를 입력시엔 종료가 되는데 1 2 3 4를 입력 하면 getc가 1을 받아버려서 사라지는 바람에 입력이 2 3 4 밖에 안되요.

질문을 다시 정리하자면

1.c언어 엔터 입력시까지 정수를 배열에 저장하는 코드를 만들어야합니다.

2.아무 것도 입력안하고 엔터입력시엔 그냥 종료가 됩니다.

3.입력받는 정수크기는 1~100,000정도로 할려고합니다.

답변부탁드립니다 ㅠㅠ...