본문 바로가기
프로그래밍/c언어 기초공부

[C언어 기초-03] 데이터 입출력 1. printf()

by 졸린이 2021. 4. 29.
반응형

저번 시간에 대애충 데이터 변수와 자료형, 선언과 초기화 하는 방법을 알아보았다.

 

쌈박한 복습을 해보자면

int number; //int 자료형 변수 number 선언
number = 10; //변수 number 10으로 초기화

이렇게 사용하면 된다. 뭐 자세하게는 실습하다보면 자연스레 몸에서 익혀질 것이고..

 

이번에는 데이터 입출력 함수에 대해서 알아본다.

 

1. 표준 입출력 함수

C언어는 컴파일러에 의해 제공되는 표준 라이브러리 함수가 있다.

 

이 라이브러리를 사용하기 위해서는 헤더파일을 명시해 줘야 한다.

 

헤더 파일에는 <stdio.h>, <math.h>, <stdlib.h> 등이 있다. 입출력 함수는 stdio.h에 정의되어 있어 이것을 상단에 적어준다.

#include <stdio.h>

이렇게 선언해주면 된다. 그럼 이제 표준 입출력 함수를 사용할 준비가 끝났다.

 

참고로 입출력을 간단히 정의하면 사용자가 컴퓨터에 데이터를 정의하면 입력이고 컴퓨터가 사용자에게 데이터를 보여주는 것이 출력이다.

 

뭐 입력장치 종류에는 마우스, 키보드 등등 출력장치에는 모니터가 대표적으로 있다. 구체적인 정의는 아니지만 그냥 이런 종류다~ 이해하는게 편하다.

 

C언어에서는 여러 입출력함수가 있는데 아래와 같다.

  표준 입출력 함수 파일 입출력 함수
입력 출력 입력 출력
문자 getchar() putchar() fgetc() fputc()
문자열 gets() puts() fgets() fputs()
형식화 데이터 scanf() printf() fcanf() fprintf()

진짜 왠지 티스토리에 표는 맘에 안든다.. 기능도 뭔가 적고 일해라 개발자!!!

 

뭐 아무튼 표준 입출력 함수만 알고 있으면 파일 입출력은 앞에 f 만 붙이면 된다. 그리고 이 글에서 파일 입출력은 생략할 것이다.

 

아무튼 입력에는 get, scan 출력에는 put, print 이렇게 명시적으로 알아보기 편하게 네이밍이 되어있다.

 

거의 scnaf() print()를 많이 쓰는 것 같다. (현업에서 c언어를 사용해본적은 없고 그냥 공부용으로만 c언어를 사용해봤다.)

 

먼저 printf() 부터 알아보자.

 

1.1 printf() 함수

hello를 출력하고 싶으면 print("hello"); 이렇게 사용하면 된다.

 

#include<stdio.h>

main(){
	printf("hello");
}

요로케 하면 되겠다.

 

앞서 우리는 변수에 대해서 간략히 배웠었다. 그럼 변수를 써먹으면서 출력을 해보자.

 

int n = 5;

printf("%d", n);

int n = 5;
printf("%d", n);

이렇게 하면 5가 출력된다.

%d는 출력할 데이터 형식을 표현하고 쌍따옴표 안에 넣는다. 그리고 쉼표로 구분해서 변수명을 기입하면 된다.

 

이를 변환 형식이라 표현한다. 변환 형식과 변수의 타입은 당연히 같아야 한다.

 

변환 형식과 데이터 타입을 살펴보자.

%c char 문자
%d int 정수
%u unsigned int 부호없는 정수
%o unsigned int 부호 없는 8진 정수
%x %X unsigned int 부호 없는 16진 정수 (x 소문자 X 대문자)
%f float, double 소수
%s char 문자열
%p * 포인터

더 다양하게 있지만 일단은 대충 이렇게만 알고 나중에 사용할 때 다시 알아보면 된다.

printf(), scanf() 둘다 적용된다.

예시를 봐보자.

1
2
3
4
5
6
7
8
9
10
11
12
#include<stdio.h>
 
main() {
    int n = 13;
    char c = 'A';
    char arr[10= "hello";
    printf("%d\n", n);
    printf("%o\n", n);
    printf("%x\n", n);
    printf("%X\n", n);
    printf("%s\n", arr);
}
cs

7행은 그냥 10진 정수로 출력하는 것이고

8행은 8진수

9행, 10행은 16진수로 출력한 것이다 x가 소문자면 출력도 소문자로 된다.

11행은 문자열을 출력해준다. 보통 배열을 사용하는데 arr[10]으로 선언 했지만 사용할때는 arr까지만 입력하면 된다.

(이게 arr이 의미하는게 포인터 변수로 저 배열의 시작주소, 즉 배열의 주소를 가리키는 것이다. 지금은 모르고 넘어가도 무방하다.)

부가설명으로 6행에 arr[10]은 문자배열로 c언어에서는 문자열 변수가 없다. 그래서 char 문자로 이루어진 배열을 선언해서 사용해야 한다.

나중에 배열할 때 뭐 알아보면 되고

\n는 줄넘김을 출력하는 것이다. 마찬가지로 쌍따옴표 안에 넣어야 하고 \ 역슬래쉬(원화 표시)이 문자는 좀 더 다양하게 사용되는데 뭐.. 지금은 그냥 넘어가자.

 

뭐 그냥 넘어가는게 많지만.... 당장은 몰라도 되고 그냥 쉽게 이해했으면 해서 이렇게 작성한다.

 

디테일들은 천천히 배우면서 알아가는 것도 나쁘지 않을 것 같다.

 

그리고 이 외에 소수점을 원하는 만큼까지만 출력해주는 printf("%.2f", float변수명) (두 번째 까지만 출력)

 

%.2f 이렇게 사용하는 것도 있고

 

printf("%5d", int변수명) 출력공간을 5자리로 잡고 오른쪽 정렬해서 출력해주는 방법도 있다. (default는 왼쪽)

 

이렇게 출력해준다.

 

뭐 이런 것들은 필요할 때 사용하면 된다. 여러 번 실습해보면서 테스트 해보길...

 

간단하게 아아아주 간단하게 printf()에 대해 알아보았고 다음에는 scanf()에 대해 알아보도록 한다.

 

 

반응형

댓글