우선 좀더 자세한 설명을 해줌. 사실 우리가 콘솔창에 ajksdlfjasdklfjl 를 치고 지우지만 엔터를 쳐서 asdfasfjkl 가 이미 입력한후에는


지울수 없는이유가 바로 이 stream 개념 때문에 그럼. OS 에서 하드웨어 인터럽트로 키보드 마우스 입력을 받는다해도 그게 바로 다이렉트로


써지는게아니라 입력버퍼에 차근차근 쌓이게됨. 콘솔창에 10101010만 치게되면 아직 입력버퍼에 들어간게 아니므로 얼마든 수정이가능하다


그말임.문제는 엔터를 친후에는 이게 입력버퍼에 쌓이지


예를들어 


scanf("%d",& (type Int)); 


의입력을하고 니가 3 엔터를 누르면 3이 정상적으로 int형에들어가짐. 하지만 컴퓨터입장에서보면 네가 눌른 엔터도 집어넣어지게 된다 그말이야


즉 3은 int 에들어가지만 오갈데없는 엔터는 입력 버퍼에 남아버리지. 근데 컴파일러는 똑똑해서 이거 scanf를 이용해서 여러개를 입력받는다해도


입력버퍼에 남은 엔터를 자동으로지워주게 돼 문제는 여기서시작됨


gets( char*) 나 getline(cin, string)  따위의 라인을 받게되면 입력버퍼 도 하나의 인풋으로 보게되고 이때는 여러가지방법으로 입력버퍼를


지워줘야됨 아까 링크걸린 곳에서 본 방법이든 뭐든간에말이야


가장단간한건 getchar(); 로 없에줘도되긴함 이게 좋은방법은아닌데 효과는확실해서 백준온라인같은 알고리즘풀때는 나도종종쓰긴함


이해가됬는지?