<stdio.h> 헤더파일
1. scanf(), printf()
보다 쉬운 설명을 위해 scanf()는 printf() 이후에 설명하겠다.
int printf(const char* restrict format, ...):
서식화된 출력을 지원.
출력할 데이터를 어떤 서식에 맞춰 출력할지 format specifier을 통해 직접 지정 가능(서식 지원자는 아래 참고.)
ⓐ %와 타입을 나타내는 영문자 사이에 숫자를 추가하여 필드의 폭을 설정할 수 있다.
ⓑ 숫자 앞에 '-' 기호를 붙이면 왼쪽 정렬로 변경할 수 있다.(오른쪽 정렬이 기본)
ⓒ 숫자 앞에 '+' 기호를 붙이면 수의 부호에 맞추어 출력할 수 있다.
printf("ⓐ 예시: '%3d'\n", 1);
printf("ⓑ 예시: '%-3d'\n", 1);
printf("ⓒ 예시: '%+3d'\n", 1);
▼ output
ⓐ 예시: ' 1'
ⓑ 예시: '1 '
ⓒ 예시: ' +1'
int scanf(const char* restrict format, ...):
주소 연산자(&)를 통해서 입력 받은 데이터를 뒤에 나오는 변수에 저장한다.
+
[^'문자']를 % 뒤에 넣으면 해당 문자를 만나기 전까지 받아온다는 의미이다.
보통 공백을 포함해서 한 줄을 읽어들일때 사용한다.
char line[1000001];
scanf("%[^\n]s", line);
※ 아래와 같이 float형 실수를 입력받을 때는 %f 사용하지만,
double형 실수에 입력받을때는 반드시 '%lf' 서식 지정자를 사용한다.
float num1;
double num2;
scanf("%f%lf",&num1,&num2);
Format Specifier | 출력 데이터 형태 |
%d, %i | 부호 있는 10진수 정수 |
%ld | long 타입 10진수 정수 |
%lld | long long 타입 10진수 정수 |
%u | unsigned type 10진수 정수 |
%o | 부호 없는 8진수 정수 |
%x / %X | 부호 없는 16진수 정수 소문자 사용 / 대문자 사용 |
%f / %.nf |
고정 소수점으로 표효한 실수 소수점 이하 6자리까지 표현 / 소수점 이하 n자리까지 반올림해서 표현 |
%e / %E | 부동 소수점으로 표현한 실수 e-표기법/E-표기법 |
%g / %.ng | 값에 따라 %f나 %e 사용 유효숫자 6개까지 / 유효숫자 n개까지 표현 |
%G | 값에 딸 %f나 %E 사용 |
%c | 하나의 문자(char) ' ' ※한글, 한자, 유니코드 X |
%s | 문자열 " " |
%% | % 기호 출력 |
2. getchar(), putchar()
int getchar(void): 한 문자씩 읽어들이며 리턴한다.
int putchar(int c): 모니터에 아스키 코드값에 해당하는 문자를 출력한다.
3. fgetc(), fputc()
int fgetc(FILE* stream) : getchar()과 마찬가지로 하나의 문자를 입력받는 함수이지만,
문자를 입력받을 스트림을 인수로 전달하여 직접 지정할 수 있어서
키보드 뿐만 아니라 파일을 통해서도 문자를 입력받을 수 있다.
int fputc(int c, FIFLE* stream) : fgetc()와 마찬가지다.
4. puts()
int puts(const char* s): c style 문자열에서 '\0'을 만나면 '\n'으로 바꾸어 모니터에 출력한다.
5. fgets(), fputs()
char* fgets(char* restrict s, int n, FILE* restrict stream): 키보드뿐만 아니라 파일에서도 문자열을 입력받을 수 있다.
첫 번째 인수: 입력받는 문자열을 저장하기 위해 선언한 배열의 시작 주소
두 번째 인수: 입력받을 수 있는 문자열의 최대 길이
마지막 인수: 문자열을 입력받을 스트림
int fputs(const char* restrict s, FILE* restric stream): 모니터뿐만 아니라 파일에 문자열을 출력할 수 있다.
※puts() 함수와 달리 문자열을 출력한 다음에 자동으로 줄바꿈 X
참고
'C,C++' 카테고리의 다른 글
C,C++] 구조체(struct) (0) | 2023.09.13 |
---|---|
C++] Stream I/O function(read, gcount, write) (0) | 2023.08.12 |
C++] Stream I/O function(get, getline, ignore,put) (0) | 2023.07.30 |
C++] Stream I/O (0) | 2023.07.30 |
C++] 빠른 입출력 방법(endl,'\n',cin.tie(NULL), ios_base::sync_with_stdio(false)) (0) | 2023.07.18 |