AngelPlayer`s Diary



프로그래밍 도중 분명 코드 내에서 문법적 오류도 나타나지 않고, 그렇다고 논리적인 오류도 보이지 않는데 scanf()가 제대로 실행되지 않는다면 버퍼에 값이 가득 차 있는지를 의심해보아야 합니다.

 


문법적, 논리적으로 전혀 오류가 없는 문장이지만 scanf()가 value에 값을 제대로 입력 하지 못한다.


 

버퍼에 값이 차 있다면 scanf()가 제대로 실행되지 않는데요, 이를 해결하기 위해서는 scanf()를 사용하기 전에 미리 버퍼의 값을 비워줘야 합니다.

 

버퍼에 값을 비워주는 방법은 흔히 알고 있는

 

fflash(stdin);

 

가 있는데요, 이 방법으로 해결되기도 합니다만, 저처럼 위 코드를 사옹해도 해결이 안되는 경우도 있습니다.

 

그런 경우

 

while(getchar()=='\n')break;

 

ffllash(stdin);가 들어갈 자리에 넣어주면 잘 해결됩니다.






공유하기

facebook twitter kakaoTalk kakaostory naver band