◎ printf()
화면에 데이터를 출력하기 위해서는 printf 함수를 사용해야 한다. printf 함수는 stdio.h 헤더파일에 들어있다. 아래는 printf 함수의 예시이다.
#include <stdio.h> // printf 함수의 사용을 위해서 반드시 포함
int main() {
printf("Hello C World! \n");
return 0;
}
printf문은 큰 따옴표 안에 출력할 내용을 적으면 된다. 위 예시를 보면 출력할 문장의 맨 끝에 \n을 볼 수 있는데 이는 개행 문자로써 다음 출력될 부분은 아래 줄에 출력되도록 한다.
#include <stdio.h>
int main() {
printf("안녕하세요.");
printf("반갑습니다.");
return 0;
}
줄 바꿈을 하지 않을 경우 위와 같이 문장이 한 줄로 출력되게 된다. 따라서 개행 문자는 printf 함수와 하나라고 보면 된다.
#include <stdio.h>
int main() {
printf("안녕하세요. \n");
printf("반갑습니다. \n");
return 0;
}
● 특수 문자
개행 문자와 같이 역슬래시(\)와 사용되는 문자를 특수 문자라고 하며 아래는 특수 문자의 종류이다. 이들을 모두 외울 필요는 없고 사용할 때만 참고하면 된다.
\a | 경고음 소리 발생 |
\b | 백스페이스(Backspace) |
\f | 폼 피드(Form Feed) |
\n | 개행(New Line) |
\r | 캐리지 리턴(Carriage Return) |
\t | 수평 탭 |
\v | 수직 탭 |
\\ | 역슬래시(\) |
\' | 작은 따옴표 |
\" | 큰 따옴표 |
● 서식 문자
특수 문자와 달리 서식 문자라는 것도 존재한다. 서식 문자란 출력 형태를 지정해주는 문자이다. 먼저 예시를 통해 확인해보자.
#include <stdio.h>
int main() {
int a = 3;
int b = 5;
printf("%d \n", a+b); // a+b 출력
printf("%c \n", 97); // 아스키 코드 97에 해당하는 문자 출력
printf("%x, %o \n", 100, 100); // 100을 16진수와 8진수로 출력
return 0;
}
printf 함수 내부 큰따옴표에 서식 문자를 사용하고 큰따옴표 뒤에다가 서식 문자에 출력할 값을 사용하면 된다. 아래는 서식 문자의 종류이다.
서식 문자 | 출력 형태 |
%d, %i | 10진수 정수(양수와 음수 모두 표현 가능) |
%x, %o | 16진수 정수, 8진수 정수(양수만 표현 가능) |
%f, %lf | 10진수 실수(양수와 음수 모두 표현 가능) |
%c | 한 개의 문자 |
%s | 문자열 |
%u | 10진수 정수(양수만 표현 가능) |
%e | e 표기법에 의한 실수 |
%E | E 표기법에 의한 실수 |
%g | 소수점 이하 자리 수에 따라 %f, %e 둘 중 하나를 선택 |
%G | 소수점 이하 자리 수에 따라 %f, %E 둘 중 하나를 선택 |
%% | % 기호 출력 |
● 자리 수 지정
printf 함수를 사용하여 출력을 할 때 자리 수를 통일 시킬 필요가 있을 때가 있다. 예를 들어 1자리 정수와 3자리 정수를 출력할 때 자리수를 지정하지 않으면 다음과 같이 출력이 된다.
#include <stdio.h>
int main() {
printf("1자리 정수: %d \n", 1);
printf("3자리 정수: %d \n", 100);
return 0;
}
만약 3자리를 확보하여 출력을 하고 싶다면 아래와 같이 출력하면 된다.
- %03d, %.3d : 3자리를 확보하고 오른쪽 정렬해서 출력. 빈 자리는 0으로 채움
- %+3d : 3자리를 확보하고 오른쪽 정렬해서 출력. 부호도 함께 출력
#include <stdio.h>
int main() {
printf("1자리 정수: %03d \n", 1);
printf("1자리 정수: %.3d \n\n", 1);
printf("1자리 정수: %+3d \n", 1);
printf("3자리 정수: %d \n", 100);
return 0;
}
◎ scanf()
화면에 데이터를 출력할 때 printf를 사용했었다. 반대로 데이터를 입력받을 때 사용하는 함수는 scanf이다. scanf 함수 역시 stdio.h 헤더 파일에 들어있다. scanf 함수는 다음과 같이 사용한다.
#include <stdio.h>
int main() {
int a; // 입력 값을 저장하기 위한 변수
scanf("%d", &a);
printf("입력 값 : %d \n", a);
return 0;
}
printf 함수에서 사용했던 서식 문자를 사용하여 어떠한 형태로 입력을 받을지 정해야 한다. 또한 어떤 변수에 저장을 할 지도 정해야 한다. 위 코드에서는 변수 a에 저장을 하고 있는데 scanf 함수 내부를 보면 변수 앞에 & 기호를 사용하고 있는 것을 볼 수 있다.
'[Programming Language] > [C언어]' 카테고리의 다른 글
[C언어] :: %d와 %i의 차이점 (0) | 2024.02.12 |
---|---|
[C언어] :: 연산자(대입, 산술, 복합 대입, 증감, 관계, 논리, 조건, 비트 논리, 비트 이동) (1) | 2024.01.31 |
[C언어] :: 상수(리터럴 상수, 심볼릭 상수, const, define) (0) | 2024.01.26 |
[C언어] :: 변수, 변수 선언 방법 및 주의사항, 변수의 사용, 변수의 시작 주소 및 & 연산자 (0) | 2024.01.25 |
[C언어] :: C언어 기본 구조(주석, 전처리기, 헤더파일, main 함수, 세미콜론, return) (1) | 2024.01.16 |