저번 시간에 대애충 데이터 변수와 자료형, 선언과 초기화 하는 방법을 알아보았다.
쌈박한 복습을 해보자면
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()에 대해 알아보도록 한다.
'프로그래밍 > c언어 기초공부' 카테고리의 다른 글
[C언어 에러 해결] Visual Studio 2019 scanf() C4996 에러해결 (0) | 2021.08.02 |
---|---|
[C언어 기초-04] 데이터 입출력 2. scanf() (0) | 2021.07.27 |
[C언어 기초-02] 데이터 편 변수와 자료형 (0) | 2020.11.05 |
[C언어 기초-01] Visual Studio 2019 설치하기 개발환경 (0) | 2020.10.28 |
[c언어 시작] 개발자가 되려면 c언어를 공부해야 하는 이유 (1) | 2020.10.17 |
댓글