본문 바로가기
Coding/C

C언어 - scanf() 함수

by ZaRi 2023. 5. 4.

 

 

 저번 변수 선언에 이어서 scanf()  함수에 대해 설명하겠습니다.

 scanf()는 입력할 때 쓰는 함수로서 파이썬에서 input() 함수, 그리고 자바에서는 System.in.read() 와 쓰임이 비슷한 것 같습니다.

 

 

 


scanf()

 scanf() 함수를 기본 적으로 쓸 때의 형식은 다음과 같습니다.

scanf() 함수 형식
자료형 변수명;

scanf("서직지정자", &변수명);

&는 그 변수의 주소를 가르키는 거지만 아직은 알 필요없을 것 같습니다.

 

 

scanf() 함수 오류 해결

 아 참고로 scanf()를 처음사용할 때는 오류가 날 것입니다.

 그러면.

프로젝트-메뉴에서-속성칸을-누름
프로젝트-속성

 위에 바에서 프로젝트의 속성을 클릭합니다..

속성창에서-C/C++칸에서-SDL검사-항목을-아니요로-설정함
SDL-설정

그리고 SDL 검사를 아니요로 바꾸고 적용을 눌러줍니다.

 

 

 

scanf() 사용해보기

이제 준비가 되었으니. scanf()를 사용해보겠습니다.

#include <stdio.h>

int main()
{
	double btc;
	printf("btc의 가격을 입력하시오: ");
	scanf("%lf", &btc);
	printf("현재 btc의 가격: %f", btc);
	return 0;
}

아 이때 참고로 double 자료형의 경우 scanf()에서 서식지정자를 %lf 라고 써줘야 오류가 안 납니다.

float 자료형이 아니라서 그런듯 합니다.

출력해보면.

btc-가격을-입력하라고-나옴
btc-가격

 

이렇게 입력 받는 것을 기다립니다. 이제 입력을 해보겠습니다.

입력-받은-btc가격이-출력-됨
btc-가격-출력

그러면 이렇게 값이 잘 받아진 것을 확인 할 수 있습니다.

 

 

 

scanf() 사용해보기 (2)

scanf()를 활용하면 값을 여러개 받는 것도 가능합니다.

#include <stdio.h>

int main()
{
	double btc, eth, xrp;
	printf("btc, eth, xrp의 가격을 입력하시오: ");
	scanf("%lf %lf %lf", &btc, &eth, &xrp);
	printf("현재 btc의 가격: %f\n", btc);
	printf("현재 eth의 가격: %f\n", eth);
	printf("현재 xrp의 가격: %f\n", xrp);
	return 0;
}

이와 같이 입력하면 한번에 여러개 입력받는 것이 가능합니다.

btc-eth-xrp-의-값을-한번에-띄어쓰기로-입력-받고-출력함
btc-eth-xrp

이때 입력할때는 띄어쓰기만 해주면 됩니다.

 

 

만약에 띄어 쓰기를 사용하고 싶지 않다면.

#include <stdio.h>

int main()
{
	double btc, eth, xrp;
	printf("btc, eth, xrp의 가격을 입력하시오: ");
	scanf("%lf,%lf,%lf", &btc, &eth, &xrp);
	printf("현재 btc의 가격: %f\n", btc);
	printf("현재 eth의 가격: %f\n", eth);
	printf("현재 xrp의 가격: %f\n", xrp);
	return 0;
}

scanf() 함수에서 서식지정자들을 적을때 띄어쓰기가 아니라 ','를 넣어주면.

btc-eth-xrp-의-값을-한번에-&#39;&#44;&#39;로-입력-받고-출력함
btc-eth-xrp-2

이러면 ','로 나누어서 입력 가능합니다.

물론 ','가 아니라 다른 문자로 설정할 수도 있습니다. 

 

 

 


 오늘은 scanf() 함수에 대해 알아보았습니다. 나중에 값을 이용할 때 많이 사용되는 것 같습니다. 

 다음에는 이제 연산자에 대해 알아보겠습니다.

 

 

 

 

댓글