표준 입력 함수 Scanf 함수를 알아보자.
다양한 키워드로 문자, 문자열뿐만 아니라 정수, 실수까지 모두 입력 받을 수 있도록 형식화된 입력을 말한다.
이와 같이 입력 받기 위해선 입력 형식 지정자가 필요하다.
scanf("%d",&n) 여기서 %d를 의미한다.
scanf는 표준 입력 함수이기 때문에 Enter키나 Space 문자로도 입력 값의 구별이 가능하다.
scanf 함수는 문자열을 입력 받을 때, 중간에 공백이 껴있으면, 입력 버퍼에 그대로 남게 된다.
문자열에 공백이 포함 된다면, gets함수를 사용하는 것이 더 좋다.
#include <stdio.h>
int main()
{
int temp = 0;
while (1)
{
printf("너의 나이를 입력해 :");
if (scanf_s("%d", &temp) == 0) // 실행에 실패하면 0을 반환한다.
{
rewind(stdin); //입력 버퍼에 남겨져 있는 값들을 초기화 했다.
printf("[Enter] digit number !! \n");
}
else {
if (temp > 0 && temp <= 150)
{
break; //정상적으로 잘 동작하면 break;
}
else {
printf("잘못된 나이입니다!! \n");
}
}
}
printf("너의 나이는 !! %d\n", temp);
}
if (scanf_s("%d", &temp) == 0) // 실행에 실패하면 0을 반환한다.
{
rewind(stdin); //입력 버퍼에 남겨져 있는 값들을 초기화 했다.
printf("[Enter] digit number !! \n");
}
else {
if (temp > 0 && temp <= 150)
{
break; //정상적으로 잘 동작하면 break;
}
else {
printf("잘못된 나이입니다!! \n");
}
각주에도 써 있지만, if문 조건 안에 scanf_s로 받는다. rewind를 통해서 버퍼 값을 초기화 시킨다.(예외처리1)
else문을 통해서 temp값에 대한 조건을 제시한다. 입력 받은 값의 범위를 보여주며 정상적으로 입력했으면, break문으로 탈출 -> 그게 아니라면 else