scanf() 함수는 입력하는 함수입니다.
이 함수의 리턴 타입이 있을까 하는 이야기입니다.
일반적으로 변수에 값을 담기 위해 사용하는 함수인데요
이 함수는 리턴 타입이 int입니다.
int _cdecl scanf(const char *const _Format....)
반환형이 int라는 것이 나옵니다.
그러면 무엇을 반환해 줄 수 있을까요
#include<stdio.h>
int main()
{
int a, b;
int c;
c = scanf("%d %d", &a, &b);
printf("%d\n",c);
return 0;
}
c에 scanf 리턴 값을 담아 보겠습니다.
제대로 자료형에 맞게 입력하면 입력 성공 한 만큼 숫자가 나옵니다.
뒤에 따라오는 변수에 담지 못한 경우(입력 실패)
성공한 하나만 변수에 저장되며(a)
실패한 변수(b)는 변수에 담기지 않습니다
처음 값이 입력 실패를 하면
뒤의 값도 실패를 하게 되며
모두 다 담기지 않습니다.
입력 버퍼에 담긴 다른 자료형으로 인해 접근을 하지 못하는 경우
둘 다 입력 실패가 떠서 scanf 리턴 값이 0이 출력되었습니다.
어디서 활용을 할까?
입력이 제대로 되지 않았다는 예외 처리를 할 수 있습니다.
'컴퓨터 프로그래밍 > C' 카테고리의 다른 글
C언어 문자열 처리 함수(strlen() :문자열 길이) (0) | 2019.07.23 |
---|---|
C언어 메모리 동적 할당 (malloc) (0) | 2019.07.23 |
C언어 main 함수에게 인자 전달(argc, argv) (0) | 2019.07.23 |
C언어 1차원 배열 / 문자열 배열 / 배열(포인터 연산) (0) | 2019.07.23 |
C언어 포인터(Ponter) / 다중 포인터 (2) | 2019.07.23 |