반응형
char str[256];
gets(str);
}
void input2(){
char str[256];
scanf("%254s", str);
}
위와 같이 2가지 패턴을 사용하여 입력 받을 수 있다.
단 scanf 의 경우 중간에 space ' ' 가 생기면 글자 뒤가 저장되지 않는 문제가 있다.
입력 처리 시 엔터 문제가 발생한다.
엔터 문제는 123 입력 후 엔터를 치면
123은 str에 저장이 되나 엔터 값은 buffer에 남게된다.
그래서 이 후에 다시 scanf가 호출되면 입력 값이 들어가는 것이 아니라
buffer에 남아있던 엔터 값이 들어간다.
간단한 해결 방안으로 fflush(stdin)을 사용한다.
수정 코드는 다음과 같다.
void input2(){
char str[256];
fflush(stdin)
scanf("%254s", str);
}
여기서 stdin 은 표준 입력을 나타내고 fflush 함수는 buffer에 남아있는 데이타 값을 버리는 역할을 한다.