덕분에 1,2 두가지 경우가 연속으로 실행되는건 없앴는데이번에는 숫자 2를 입력하면 정상적인 작동을 하는데1을 입력하면 사진처럼문자 입력 건너뛰고 10이라는 숫자가 출력된다.뭐가 잘못된거냐..?
\\n
ㄴ 무슨소리냐..? \n은 단순한 줄바꿈아니야? 뭐가 잘못된건지 모르겠다...
cc 말이 맞음 \n이 char 10진수값으로 10임 스캔에프가 원래 엔터입력을 버퍼에 기억한다고했던가 그래서 그런듯 지우고해보셈
1\n이 연속으로 입력된거임.
ㄴ일단 스캔에프 앞에있는 \n 지워봣더니 줄바꿈만 사라지고 결과는 같길래 모든 \n을 지우고 실행했으나 같은결과가 나온다... 새로 글올려볼게
flush인가 fflush 인가로 scanf다음에 인풋버퍼 비워줘야함
아니면 scanf("%d\n",&var;) 이런식이어도 됬던거같은데
n앞에 역슬래시있음
ㅁㄴㅇ//%c 뒤에 너말대로 역슬래시n 붙였더니 문자입력은 가능해졌는데 어떤 문자를 입력하든 출력값이 10으로 고정된다.
fflush(stdin)
초록창 지식인 성님이
if (num==1) 바로 윗줄에 getchar(); 붙이라고 해서 해봤더니 깔끔히 해결됬다. fflush는 아직 무슨소린지 모르겠어서 좀더공부해야겠다. 암튼 다들 고마워
scanf(" %d", &x)처럼 %d 앞에 공백 하나를 주면 버퍼에 존재하는 모든 white characters (\\t, \\n, space 등)을 잡아먹음 ㅇㅇ 그러니까 프로그램의 모든 scanf 호출을 위와 같은 형식으로 바꿔주면 되겠지?
cc//고맙다 더 쉽고 간편한 방법이 있었네