happy coding
[c] 입출력함수 본문
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 |