스트림
데이터 스트림의 약자이다
데이터가 흘러들어오는 선을 의미하며, 다양한 선이 존재한다
데이터 스트림의 종류
stdin 스트림: 키보드를 통한 입력 데이터 스트림
stdout 스트림: 콘솔(콘솔 창)을 통한 출력스트림
File 스트림: 입출력이 가능한 파일스트림
String 스트림: 입출력이 가능한 문자열 스트림
stdin > stdout
일반적으로 많이 사용하는 스트림 형태이다
stdin을 통해서 데이터를 받아서 stdout으로 데이터를 출력한다
스트림 (stdin, stdout, file, string 등)은 경계선 너머의 장치이다
따라서, 버퍼를 통해서 한꺼번에 가져오는 동작이 필요하다
여기서 버퍼는 데이터를 일시적으로 저장하는 메모리 영역이다
만약, 키보드를 잡고 있는 사람이 의도적으로 “clear memory”를 입력을 했을 경우에
버퍼가 없다면 곧바로 프로그램으로 들어오고
버퍼가 있다면 필터 작용을 거치게 되기 때문에
버퍼는 입출력 소스와 목적지 간의 속도 차이를 조절하는 등의 일종의 필터 역할을 하게 된다
file > stdout
file 스트림을 통해서 데이터를 받아서 stdout으로 데이터를 출력한다
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main(void)
{
int a = 0;
FILE* InputText = fopen("input.txt", "r");
fscanf(InputText, "%d", &a);
printf("%d", a);
fclose(InputText);
InputText = NULL;
return 0;
}
file > file
file 스트림을 통해서 데이터를 받아서 file 스트림으로 데이터를 출력한다
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main(void)
{
int a = 0, b = 0;
FILE* InputText = fopen("input.txt", "r");
FILE* OutputText = fopen("output.txt", "w");
fscanf(InputText, "%d %d", &a, &b);
fprintf(OutputText, "%d", a * b);
fclose(InputText);
InputText = NULL;
fclose(OutputText);
OutputText = NULL;
return 0;
}
'C > [코드조선] C 핵심' 카테고리의 다른 글
[C] 입출력 리디렉션, 커맨드 라인 인자 (0) | 2024.02.17 |
---|---|
[C] 파일 입출력 (2) (0) | 2024.02.16 |
[C] 열거형과 공용체 (0) | 2024.02.15 |
[C] 구조체 vs. 클래스 (0) | 2024.02.14 |
[C] 비트필드와 비트플래그 (0) | 2024.02.14 |