[질문] stdin에 관해서
글쓴이: zipsinworm / 작성시간: 목, 2009/03/05 - 9:53오전
기초적인 질문인거 같은데 해결이 안나서 이렇게 글을 남김니다.
매우 간단한 소스인데요.
#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배열에 들어가 버립니다.
해결하는 방법이 없을까요?
한줄요약
입력버퍼안에 뉴라인을 없애는 방법은 없을까요?
Forums:
fflush(stdin)은
gcc에서 사용이 안되더군요. perror로 체크해보니 허용되지않는 탐색에러가 납니다.
visual에선 됐던거 같은데.....
fflush는 결국 출력 스트림에서만 가능하군요.
댓글 달기