happy coding

[c] 입출력함수 본문

self study/언어의 기본부터

[c] 입출력함수

yeoonii 2022. 11. 14. 23:40
TCPschool을 보고 공부한 내용입니다.

printf()함수

printf() 함수는 C언어의 표준 출력 함수이고 원형은 밑과 같다. printf에서의 f는 formatted의 약자이며, 서식화된 출력을 지원한다는 의미이다. 이 함수에서는 출력할 데이터를 어떤 서식에 맞춰 출력할지 서식 지정자를 통해 직접 지정이 가능하다. 

#include <stdio.h>
int printf(const char* restrict format, ...);
printf("sentence.\n");
printf("%d개의 문장\n", 55);

int형 데이터를 나타내기 위해 %d라는 서식 지정자를 사용하고, 줄바꿈은 \n이라는 이스케이프 시퀀스를 사용해 표현한다.

이스케이프 시퀀스(escape sequence)

\' 작은 따옴표
\" 큰 따옴표
\? 물음표
\\ 백슬래시\
\a 경고음 발생
\b 백스페이스
\n 줄 바꿈
\r carriage return
\t 수평 탭
\v 수직 탭
\f form feed

이스케이프 시퀀스는 프로그램의 결과가 화면에 출력될 때 사용하게 될 특수한 문자를 위해 만들어졌다. 위의 표에서 \f와 \v는 프린터로 출력할 때만 의미를 가진다.

서식 지정자(format specifier)

서식 지정자는 출력할 데이터의 서식을 사용자가 자유롭게 지정할 수 있도록 한다.

%c 하나의 문자
%s 문자열
%d, %i 부호 있는 10진 정수
%f 고정 소수점으로 표현한 실수 (소수점 이하 6자리까지 표현)
%o 부호 없는 8진 정수
%u 부호 없는 10진 정수
%x 부호 없는 16진 정수 (소문자)
%X 부호 없는 16진 정수 (대문자)
%e 부동 소수점으로 표현한 실수 (e-표기법)
%E 부동 소수점으로 표현한 실수 (E-표기법)
%g 값에 따라 %f나 %e를 사용한다
%G 값에 따라 %f나 %E를 사용한다
%% 퍼센트 기호를 출력한다

서식 지정자를 동시에 사용할 경우, 순서와 타입이 반드시 일치해야 한다. 

출력 필드의 폭 설정

서식 지정자의 %기호와 타입을 나타내는 영문자 사이에 숫자를 추가해 출력되는 필드의 폭을 직접 설정할 수 있다. 내부의 숫자는 오른쪽 정렬이 기본이며, 숫자 앞에 -기호를 붙이면 왼쪽 정렬로 변경된다. 또한, 숫자 앞에 +기호를 붙이면 숫자를 오른쪽 정렬한 상태에서 양수에는 +기호를, 음수에는 -기호를 붙여 출력한다. 이때 소수 부분의 숫자는 출력되는 소수의 자릿수를 명시한다.

scanf()함수

scanf()함수는 C언어의 표준 입력 함수이고, 사용자로부터 다양한 데이터를 서식에 맞춰 입력받을 수 있게 해준다. 원형은 밑과 같고, scanf()의 f는 printf()와 같다.

#include <stdio.h>
int scanf(const char* restrict format, ...);

C언어에서 데이터를 입력받으려면 입력받고자 하는 데이터의 타입에 해당하는 크기의 메모리를 우선 할당 받아야 한다. 그렇게 할당받은 메모리 공간을 변수(variable)라고 한다. 함수에 포함된 '&'기호는 주소연산자인데, 입력받은 데이터를 뒤어 나오는 변수에 저장하라는 의미이다. 그리고, scanf()에서는 double형 실수를 입력받을 때 %f가 아닌 %lf 서식 지정자를 사용해야 정확한 값으로 받을 수 있다.


scanf 를 사용해서 변수를 입력받을 경우, 그 변수 앞에 &를 적어주어야 한다.

'self study > 언어의 기본부터' 카테고리의 다른 글

[c] 연산자  (0) 2022.11.17
[c] 타입 변환  (0) 2022.11.16
[c] 변수와 상수  (0) 2022.11.15
[c] 변수  (0) 2022.11.15
[c] C언어에 대해서  (0) 2022.11.11
Comments