[질문] stdin에 관해서

zipsinworm의 이미지

기초적인 질문인거 같은데 해결이 안나서 이렇게 글을 남김니다.

매우 간단한 소스인데요.

#include

int main(void){
int num;
printf("input num");
scanf("%d",&num);
switch(num){
case 1:
char s[125];
printf("input string");
fgets(s,125,stdin);
break;
default:
printf("OOPS");
}
}

처음에 1을 넣고 바로 문자열을 입력하게끔 하려고 하는데
1을 넣고 엔터를 넣자마자 뉴라인(엔터)이 fgets(s,125,stdin);
에 바로 들어가버려서 문자열 입력이 안되더라고요.
혹시나 1을 입력할 당시 입력버퍼에 엔터값이 있나해서 fflush(stdin)을
넣어도 뉴라인이 s배열에 들어가 버립니다.

해결하는 방법이 없을까요?

한줄요약
입력버퍼안에 뉴라인을 없애는 방법은 없을까요?

zipsinworm의 이미지

gcc에서 사용이 안되더군요. perror로 체크해보니 허용되지않는 탐색에러가 납니다.
visual에선 됐던거 같은데.....
fflush는 결국 출력 스트림에서만 가능하군요.