C 언어에서 입력과 출력 함수

안녕하세요, 미래의 프로그래머 여러분! 오늘 우리는 C 프로그래밍의 입력과 출력(I/O) 세계로 흥미로운 여정을 떠납니다. 여러분의 친절한 이웃 컴퓨터 선생님이자 저는 이 코딩의 필수적인 부분을 안내해드리기 위해 여기 있습니다. 그럼 가상의 메모 pads를 집어들고, 함께 들어보겠습니다!

C - Input & Output

C에서의 표준 파일

먼저 키보드를 두들기기 전에, 기본적인 것에 대해 이야기해봅시다: C의 표준 파일. 여러분이 C 프로그램을 실행할 때, 자동으로 세 개의 파일을 엽니다. 마치 세 명의 유용한 어시스턴트가 프로그램의 외부와의 소통을 관리해주는 것처럼입니다.

  1. stdin (표준 입력)
  2. stdout (표준 출력)
  3. stderr (표준 오류)

이 파일들은 프로그램의 사용자와 시스템과의 통로입니다. stdin은 프로그램의 귀, stdout은 입, stderr은 무언가 잘못되었을 때 소리를 지르는 방법으로 생각해보세요. 멋지죠?

입력과 출력 함수의 유형

이제 이 파일들과 상호작용하는 도구에 대해 이야기해보겠습니다. C에서는 두 가지 주요 유형의 I/O 함수가 있습니다:

  1. 형식 없는 I/O 함수
  2. 형식 있는 I/O 함수

형식 없는 함수는 원시 데이터를 다루며, 형식 있는 함수는 데이터의 형식을 지정할 수 있게 해줍니다. 그것은/plain rice(형식 없음)과 아름답게 배치된 고급 요리(형식 있음) 사이의 차이와 같습니다. 둘 다 일을 해결하지만, 하나는 표현에 더 많은 제어를 주기 때문입니다!

형식 없는 문자 입력 및 출력 함수: getchar()와 putchar()

simple한 것으로 시작해보겠습니다. 형식 없는 문자 I/O. getchar()putchar()을 만나보세요.

getchar()

getchar()는 표준 입력(보통 키보드)에서 단일 문자를 읽습니다. 마치 단일 문자를 기다리는 인내심 있는 청취자처럼입니다.

#include <stdio.h>

int main() {
char ch;
printf("Enter a character: ");
ch = getchar();
printf("You entered: ");
putchar(ch);
return 0;
}

이 예제에서 getchar()은 여러분이 문자를 입력할 때까지 기다렸고, 그 문자를 ch에 저장합니다. 이렇게 간단하지만 강력합니다!

putchar()

putchar()getchar()의 반대입니다. 표준 출력(보통 화면)에 단일 문자를 출력합니다. 마치 단일 글자를 알리는 시위대처럼입니다.

#include <stdio.h>

int main() {
char ch = 'A';
printf("Printing a character: ");
putchar(ch);
return 0;
}

여기서 putchar(ch)는 화면에 문자 'A'를 표시합니다. 간단하고 효과적입니다!

형식 있는 문자열 입력 및 출력 함수: gets(), fgets(), puts(), 및 fputs()

이제 레벨 업하고 문자열 I/O에 대해 이야기해보겠습니다. 이 함수들은 전체 문자열을 처리합니다.

gets()와 fgets()

gets()는 stdin에서 한 줄을 버퍼에 읽습니다. 그러나 버퍼 오버플로를 확인하지 않기 때문에 안전하지 않다고 간주됩니다. 그래서 더 안전한 사촌 fgets()을 사용하는 것이 좋습니다.

#include <stdio.h>

int main() {
char name[50];
printf("Enter your name: ");
fgets(name, sizeof(name), stdin);
printf("Hello, %s", name);
return 0;
}

이 예제에서 fgets()는 한 줄의 텍스트(여러분의 이름)를 name 배열에 읽습니다. 이것은 안전합니다因为我们指定了要读取的最大字符数。

puts()와 fputs()

puts()는 문자열을 stdout에 쓰고 줄 바꿈을 추가합니다. 파일 스트림 대체인 fputs()가 있습니다.

#include <stdio.h>

int main() {
char greeting[] = "Hello, World!";
puts(greeting);  // 출력: Hello, World! (줄 바꿈 포함)
fputs(greeting, stdout);  // 출력: Hello, World! (줄 바꿈 없음)
return 0;
}

puts()는 자동으로 줄 바꿈을 추가하지만, fputs()는 더 많은 제어를 제공합니다.

형식 있는 입력 및 출력 함수: scanf()와 printf()

이제 C의 I/O의 중요한 하이퍼히트를 다룰 차례입니다: scanf()printf(). 이 함수들은 다재다능하고 강력합니다.

scanf()

scanf()는 stdin에서 형식 있는 입력을 읽습니다. 마치 까다로운 먹는 사람처럼, 지정된 형식으로 준비된 음식만 먹습니다.

#include <stdio.h>

int main() {
int age;
float height;
printf("Enter your age and height: ");
scanf("%d %f", &age, &height);
printf("You are %d years old and %.2f meters tall.\n", age, height);
return 0;
}

여기서 scanf()는 입력에서 정수(%d)와 실수(%f)를 읽습니다. &ageheight의 위치를 scanf()에 알리는 중요한 부분입니다.

printf()

printf()scanf()의 출력 대체입니다. 마치 아름답게 포장된 이야기꾼처럼, 데이터를 아름답게 형식화합니다.

#include <stdio.h>

int main() {
int apples = 5;
float price = 0.75;
printf("I have %d apples, each costing $%.2f.\n", apples, price);
return 0;
}

이 예제에서 printf()는 데이터를 아름답고 읽기 쉽게 포맷합니다.

C에서의 포맷 지정자

포맷 지정자는 scanf()printf()의 강력한 비밀 재료입니다. 데이터를 해석하거나 표현하는 방법을 지시하는 지시사항입니다.

다음은 일반적인 포맷 지정자 표입니다:

지정자 데이터 유형
%d 정수
%f 실수
%c 문자
%s 문자열
%lf 더블
%x 16진수
%o 8진수
%p 포인터

이 지정자를 수정할 수 있습니다. 예를 들어, %.2f는 실수를 소수점 이하 2자리로 출력하고, %5d는 정수를 5자리 너비 필드에 출력합니다.

그리고 여러분! C의 입력과 출력 기본을 다루었습니다. 연습이 완벽을 만듭니다. 그럼 밖으로 나가서 코딩을 시작해보세요! 아마도 다음 큰 기술 혁신을 만들 수도 있습니다. 다음에 만날 때까지, 행복한 코딩을 기원합니다!

Credits: Image by storyset