[C언어 소스] scanf_s 함수 사용하는 예
#include <stdio.h>
#define AVAIL(x)
((x>=0)&&(x<=255)) //유효한 수인지 판별하는 매크로
//IPv4주소로 유효한지 판별하는 매크로
#define AVAIL_IPv4(a,b,c,d) (AVAIL(a)&&AVAIL(b)&&AVAIL(c)&&AVAIL(d))
int main()
{
char hostname[256];
int a, b, c, d;
int result;
//IPv4 주소 입력
printf("호스트 명과 IPv4 주소 입력(호스트 명 xxx.xxx.xxx.xxx)
\n");
result = scanf_s("%s %d.%d.%d.%d",hostname, sizeof(hostname), &a, &b, &c,& d);
if (result < 5)//변환 개수가 4보다 작을 때
{
printf("포멧에 맞게 입력하지 않았습니다.\n");
}
else
{
if (AVAIL_IPv4(a, b, c, d))//유효한 IPv4 주소일 때
{
printf("%s의 IPv4 주소 %d.%d.%d.%d \n",hostname, a, b, c, d);
}
else
{
printf("유효한 IPv4 주소가 아닙니다.\n");
}
}
return 0;
}
실행 결과
호스트 명과 IPv4 주소 입력(호스트 명 xxx.xxx.xxx.xxx)
ehclub.net 192.168.34.50
ehclub.net의 IPv4 주소 192.168.34.50
본문
[디딤돌 C언어] 26. scanf, scanf_s 함수
'C언어 > 디딤돌 C언어 예제' 카테고리의 다른 글
[C언어 소스] ^ 연산자를 이용한 간단한 대칭형 암호화 예 (0) | 2016.11.24 |
---|---|
[C언어 소스] getchar 함수 사용하는 예 (0) | 2016.11.24 |
[C언어 소스] scanf 함수 사용하는 예 (0) | 2016.11.23 |
[C언어 소스] 다양한 포멧을 지정하여 출력 (0) | 2016.11.23 |
[C언어 소스] 이 책에서 사용하는 명명법 (0) | 2016.11.23 |