A. 기본적인 입출력
1. 스트림 (stream)
a. 스트림이란?
🌟 실제의 입력이나 출력이 표현된 데이터의 이상화된 흐름 = 운영체제에 의해 생성되는 가상의 연결 고리
C언어는 파일이나 콘솔의 입출력을 직접 다루지 않고, 스트림을 통해 다룸
b. 스트림 생성 방식
- 콘솔 장치 : 프로그램 실행 시 자동 실행, 자동 소멸
- 파일 연결 스트림 : 직접 생성
c. 표준 스트림 (standard stream)
표준 스트림 | 설명 |
stdin | 표준 입력 스트림 |
stdout | 표준 출력 스트림 |
stderr | 표준 오류 스트림 |
d. EOF(End Of File)
🌟 파일 끝에 도달했을 때 반환되는 값, -1
✔ 운영체제마다 다르지만 C언어에서는 운영체제 상관없이 -1을 반환함
💙 파일뿐만 아니라 키보드를 통한 입력시에도 입력의 끝을 알려주는 방법 (EOF 발생시키기)
⦁ 유닉스(UNIX) 시스템 : 라인의 시작 위치에서 Ctrl+D
⦁ 윈도우 명령창 : 해당 라인의 어디에서든 Ctrl+Z를 누르고 나서 Enter
🤓 예제 : EOF를 입력할 때까지 계속해서 영문자를 한 문자씩 입력받기
#include <stdio.h>
int main(void)
{
char ch;
printf("EOF가 입력될 때까지 영문자를 계속 입력받습니다 :\n");
printf("(윈도우에서 EOF의 강제 발생은 Ctrl+Z를 누르고 나서 Enter를 누르면 됩니다)\n");
while ((ch = getchar()) != EOF)
{
putchar(ch);
}
return 0;
}
✨ 실행결과
EOF가 입력될 때까지 영문자를 계속 입력받습니다 :
(윈도우에서 EOF의 강제 발생은 Ctrl+Z를 누르고 나서 Enter를 누르면 됩니다)
a
a
b
b
-1
-1
^Z
B. 문자 입출력 함수
1. 단일 문자 입력 함수
a. getChar()
🌟 표준 입력 스트림(stdin)인 키보드로부터 하나의 문자를 입력받는 함수
📘 원형
#include <stdio.h>
int getchar(void);
b. fgetc()
🌟 표준 입력 스트림(stdin)인 키보드나 파일로부터 하나의 문자를 입력받는 함수
👉 문자를 입력받을 스트림을 인수로 전달하여 직접 지정할 수 있어서 getChar()과 다르게 파일을 통해서도 입력받을 수 있음 (앞 f는 file이 붙은것)
📘 원형
#include <stdio.h>
int fgetc(FILE *stream);
2. 단일 문자 출력 함수
a. putchar()
🌟 표준 출력 스트림(stdout)인 모니터에 하나의 문자를 출력하는 함수
📘 원형
#include <stdio.h>
int putchar(int c);
b. fputc()
🌟 표준 출력 스트림(stdout)인 모니터에 하나의 문자를 출력하는 함수
👉 문자를 출력할 스트림을 인수로 전달하여 직접 지정할 수 있어서 putChar()과 다르게 파일을 통해서도 문자를 출력(저장)할 수 있음 (앞 f는 file이 붙은것)
📘 원형
#include <stdio.h>
int fputc(int c, FILE *stream);
🤓 예제 : 'x'문자가 입력될 때까지 계속해서 영문자를 입력받고 출력
#include <stdio.h>
int main(void)
{
char ch;
printf("x가 입력될 때까지 영문자를 계속 입력받습니다 :\n");
while ((ch = getchar()) != 'x')
{
putchar(ch);
}
printf("x를 입력하셨습니다.\n");
return 0;
}
✨ 실행결과
x가 입력될 때까지 영문자를 계속 입력받습니다 :
c
c
d
d
x
x를 입력하셨습니다.
👉 여기서 좀 더 자세하게 공부할 수 있음
[입력과 출력] 콘솔 입출력, 파일 입출력, 파일 입출력 함수
A. 콘솔 입출력 공부하기 전 C 언어의 기본적인 입출력 방식에 대해 알아야 함 [문자와 문자열] 입출력 함수 총정리 1 : 스트림과 문자 A. 기본적인 입출력 1. 스트림 (stream) a. 스트림이란? 🌟 실제
monamu.tistory.com
출처 : http://www.tcpschool.com/c/c_string_io
코딩교육 티씨피스쿨
4차산업혁명, 코딩교육, 소프트웨어교육, 코딩기초, SW코딩, 기초코딩부터 자바 파이썬 등
tcpschool.com
'프로그래밍 언어 > C' 카테고리의 다른 글
[입력과 출력] 콘솔 입출력, 파일 입출력, 파일 입출력 함수 (0) | 2023.08.17 |
---|---|
[문자와 문자열] 입출력 함수 총정리 2 : 문자열 (0) | 2023.08.17 |
[메모리의 관리] 메모리의 기초 총정리 (0) | 2023.08.17 |
[자료형(data type)] C 파생형 공용체와 열거체 (0) | 2023.08.17 |
[자료형(data type)] C 구조체 배열과 구조체 포인터, 구조체 활용 (0) | 2023.08.17 |