본문 바로가기
언어/C언어

[C 언어] 4. printf() 와 scanf()

by 천무지 2024. 4. 14.
반응형

C언어는 입출력을 하기위해 라이브러리 함수를 제공합니다.

 

그중 printf()는 모니터에 출력해주는 함수고, scanf()는 키보드로 입력 받는 함수입니다.

 

입출력 라이브러리 함수가 제공되지 않는다면 직접 코드를 작성 해야 될 것입니다.

 

엄청 불편할 겁니다.

 

먼저 printf() 부터 보겠습니다.

 

문자열을 출력하려면 printf()를 사용하려면 ()안에 필요한 데이터를 넣어주면 됩니다.

 

변수값을 출력 하려면 %d 와 같은 형식 지정자를 사용해서 나타낼 수 있다.

 

예를 들어서 sum 이라는 변수를 화면에 출력하려면 printf("총합: %d", sum); 이라고 쓴다.

 

여기서 %d 는 %d 를 출력하라는 뜻이아니고 출력 형식을 지정한 것입니다.

 

%d 는 10 진수 형태로 출력하라는 것을 의미 합니다. (10진수는 우리가 아는 1,2,3,4,5,..와 같은 수)

 

%d 말고도 다른 형식 지정자도 있다.

 

 형식지정자 의미  예  실행결과 
%d  10진 정수로 출력  printf("%d\n", 10);  25
 %f 실수로 출력  printf("%f\n", 3.14);  3.14
 %c 문자로 출력  printf("%c\n", 'a');  a
 %s 문자열로 출력  printf("%s\n", "Hello");  Hello

 

 

다음은 scanf() 입니다.

 

scanf()는 printf() 와 비슷합니다.

 

scanf()가 변수를 저장하는 방법은 scanf("%d", &x); 입니다.

printf()와 다른 점이 있다면 &가 보인다는 것 입니다.

 

&는 변수의 주소를 의미 합니다.

 

이 말 뜻은 변수를 선언하고 초기화 하면 그 변수가 메모리에 저장 되는데 그 저장된 자리의 주소가 변수의 주소 입니다.

 

인터넷에서 물건을 사고 집으로 배달 시킬때 주소를 써야 배달이 되겠죠?

 

같은 맥락입니다.

 

scanf()가 왜 주소를 쓰는지는 저~~~ 뒤에 가서 자세히 설명 하겠습니다.

 

또 scanf()의 형식 지정자도 있습니다.

 

 형식지정자  의미  예
 %d  정수를 10진수를 입력한다. scanf("%d", &i);
 %f  float형의 실수를 입력한다. scanf("%f", &f);
 %lf  double형의 실수를 입력한다. scanf("%lf", &d);
 %c  문자 형태로 입력한다. scanf("%c", &ch);
 %s  문자열 형태로 입력한다. char s[10]; scanf("%s", s);

 

빨간 네모는 아직 안배운건데 일단 넘어가는게 좋습니다.

 

scanf()로 원 넓이 구하는 프로그램을 짜보고 마치도록 하겠습니다.

 

 

#include <stdio.h>

 

int main()

{

int r;

float area;

 

printf("반지름을 입력하세요 (단위,cm) : ");

scanf("%d", &r);

 

area = r * r * 3.14;

 

printf("원의 넓이 = %f cm^2", area);

 

}

 

 

 

 

 

 

이상으로 마칩니다.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

반응형