[ error report ]
c언어 scanf 함수 주의점. 문자 하나를 받을 경우
2022-03-06 22:32:04
double a = 0; double b = 0; char c; scanf("%lf", &a); scanf("%lf", &b); scanf(" %c", &c); printf("%.2lf\n", a); printf("%.2lf\n", b); printf("%c\n", c); 위 함수를 자세히 보면 scanf(" %c", &c);의 형태이다. %c앞에 공백이 있는 것을 볼 수 있다. 이 점을 유의해야 한다. 일반적인 자료형의 경우에는 이전에 입력된 엔터나 공백문자, 탭 등을 입력구분자로 처리하여 무시한다. 그러나 문자형 자료char의 경우에는 모든 문자를 입력으로 처리한다. 만약 공백을 생략하면 위에 b의 값을 입력받은 후 누른 엔터가 버퍼에 저장되어 있다가 위의 입력명령을 만나면 c에 저장되어 엉뚱한 결과..