Scanf 함수는 키보드로 입력한 값을 변수로 저장할 때 사용한다.
scanf 함수는 변수 형태에 맞는 변환문자를 사용하여 입력할 변수 앞에 & 기호를 붙인다.
예를 들어 int형 변수 a에 정수를 입력하는 방법은 이하와 같다(변환 문자와 변수 사이는 쉼표로 구분한다).예제를 통해 자세히 살펴보자.실행결과 프로그램을 실행하고 결과창을 보면 커서가 깜박이며 기다리게 될 것이다.
이 커서는 7줄의 scanf(“%d”, &a);를 수행한 결과값을 입력할 때까지 그 이후의 문장은 수행하지 않는다.
여기서 원하는 정수를 입력하면 그 값이 변수 a에 저장된다.
예를 들어 “10”을 입력하고 엔터를 치면 a에 10이 저장되고 다음 문장인 8행이 실행되고 입력된 10이 출력된다.
Scanf 함수 사용 유의점
- Scanf 함수에서 변수 이름을 지정할 때는 &를 붙여야 한다.가장 많이 틀리는 것이 변수 이름 앞에 & 기호를 떨어뜨리는 것이다.
- 출력할 때는 변수 이름만 사용하지만 입력할 때는 변수 이름 앞에 & 기호를 붙여야 한다.
- &기호는 변수의 주소를 구하는 연산자로, 다음에 상술한다.
- 2. Scanf 함수에서 사용한 변환문자와 일치하는 형태의 데이터를 입력해야 한다.scanf 함수는 변환 문자와 입력 형태가 다르면 데이터를 입력하지 못할 수 있다.
- 키보드로 입력하는 데이터는 모두 문자로 처리된다.
- scanf 함수는 변환 문자를 보고 정수로 변환할 것인지, 실수로 변환할 것인지, 아니면 그대로 문자열로 입력할 것인지 판단한다.
- 그런데 만약 변환문자와 다른 예상치 못한 데이터가 입력되면 Scanf 함수는 변환을 포기하고 실행을 중단한다.
- 이후 프로그램은 계속 진행되어 변수에 값이 입력되지 않기 때문에 Scanf 함수 이전에 있었던 쓰레기 값이 사용되어 그대로 출력된다.