프로그래밍 도중 분명 코드 내에서 문법적 오류도 나타나지 않고, 그렇다고 논리적인 오류도 보이지 않는데 scanf()가 제대로 실행되지 않는다면 버퍼에 값이 가득 차 있는지를 의심해보아야 합니다.
문법적, 논리적으로 전혀 오류가 없는 문장이지만 scanf()가 value에 값을 제대로 입력 하지 못한다.
버퍼에 값이 차 있다면 scanf()가 제대로 실행되지 않는데요, 이를 해결하기 위해서는 scanf()를 사용하기 전에 미리 버퍼의 값을 비워줘야 합니다.
버퍼에 값을 비워주는 방법은 흔히 알고 있는
fflash(stdin);
가 있는데요, 이 방법으로 해결되기도 합니다만, 저처럼 위 코드를 사옹해도 해결이 안되는 경우도 있습니다.
그런 경우
while(getchar()=='\n')break;
를 ffllash(stdin);가 들어갈 자리에 넣어주면 잘 해결됩니다.
[MariaDB] CSV 파일 데이터 MySQL(MariaDB)에 import 하기 (0) | 2022.10.08 |
---|---|
[C / Visual Studio] Stack Overflow Error 해결 방법 (0) | 2021.05.03 |
자주 쓰는 CMD 명령어 정리 (0) | 2021.03.04 |
[C / C4996] scanf_s() 오류 발생 시 해결(무시)하는 방법 (3) | 2017.12.15 |