표준 입출력 함수

✒️ 2025-05-15 15:53 내용 수정

수제비 2024 정보처리기사 필기 5판 1권의 내용을 정리
TCPSchool의 내용을 정리


사용자가 프로그램과 대화하기 위해 사용하는 함수


기본 출력 함수

이스케이프 시퀀스

이스케이프 시퀀스 기능 비고
\a 경고음 발생
\b 백스페이스
\n 줄바꿈
\r 캐리지 리턴
\t 수평 탭(tab)
\v 수직 탭(tab) 프린터 출력시만
\f 폼 피드(form feed) 프린터 출력시만
printf("first line\nsecond line");

서식 지정자

서식 지정자 데이터
%c 문자 1개(char)
%s 문자열(string)
%d 부호 있는 10진 정수
%i 부호 있는 10진 정수(int)
%f 고정 소수점 실수(소수점 6자리 이하)
%o 부호 없는 8진 정수(oct)
%u 부호 없는 10진 정수
%x 부호 없는 16진 정수(소문자 사용) (hex)
%X 부호 없는 16진 정수(대문자 사용) (hex)
%e 부동 소수점으로 표현한 실수(e 표기법)
%E 부동 소수점으로 표현한 실수(E 표기법)
%g 값에 따라 %f%e 사용
%G 값에 따라 %f%E 사용
%% % 출력
%p 포인터 주소
printf("test char : %c", 'a');
printf("%d %s apples", 5, "golden");
#include <stdio.h>

int main() 
{
    printf("|%.3f|\n", 3.141592);
    printf("|%+10.3f|\n", 3.141592);
    printf("|%-10.3f|\n", 3.141592);
    return 0;
}
|3.142|
|    +3.142|
|3.142     |

1. printf()

printf("%d %s apples", 5, "golden");

2. putchar()

#include <stdio.h>
int putchar(int c);
#include <stdio.h>

int main(void)
{
    int putchar(int c);
    putchar(65);
    return 0;
}
A

3. fputc()

#include <stdio.h>
int fputc(int c, FILE *stream);
#include <stdio.h>

int main(void)
{
    int fputc(int c, FILE *stream);
    FILE* fout = fopen("전체경로\\fput.txt", "w");

    for (int i = 0; i < 10; i++)
    {
        fputc(i+65, fout);
    }

    fclose(fout);
    return 0;
}
ABCDEFGHIJ

4. puts()

#include <stdio.h>
int puts(const char *s);
#include <stdio.h>

int main() {
    char str1[] = "Hello World";
    char str2[] = "Apple Kiwi Banana";

    puts(str1);  // 문자열 출력 후 자동 개행
    puts(str2);
    return 0;
}
Hello World
Apple Kiwi Banana

5. fputs()

#include <stdio.h>
int fputs(const char * restrict s, FILE * restrict stream);
#include <stdio.h>

int main() {
    FILE *file = fopen("전체경로\\fputsResult.txt", "w");
    if (file == NULL) {
        printf("파일을 열 수 없습니다.\n");
        return 1;
    }

    fputs("파일에 fputs() 함수로 새 문자열 저장하기", file);  // 파일에 문자열 쓰기
    fclose(file);  // 파일 닫기

    printf("파일에 문자열을 성공적으로 저장했습니다.\n");
    return 0;
}
파일에 fputs() 함수로 새 문자열 저장하기

기본 입력 함수

1. scanf()

#include <stdio.h>
int scanf(const char * format, ...);
#include <stdio.h>

int main(void) {
	int a, b;

	printf("첫 번째 정수 입력 : \n");
	scanf("%d", &a);
	printf("두 번째 정수 입력 : \n");
	scanf("%d", &b);

	printf("입력 받은 두 정수 : %d와 %d", a, b);
	return 0;
}

2. getchar()

#include <stdio.h>
int getchar(void);
#include <stdio.h>

int getchar(void);

int main(void)
{
    char ch = getchar();
    printf("입력 받은 문자 : %c\n", ch);
    return 0;
}
문자을 입력해주세요 :
a
입력 받은 문자 : a

3. fgetc()

#include <stdio.h>
int fgetc(FILE *stream);
#include <stdio.h>

int main() {
    FILE *fp;
    char ch;

    fp = fopen("전체경로\\charInput.txt", "r");
    if (fp == NULL) {
        perror("파일을 열 수 없습니다");
        return 1;
    }

    // 한 문자씩 읽어서 출력
    // EOF : 파일에 마지막에 도달하면 반환되는 값
    while ((ch = fgetc(fp)) != EOF) {
        putchar(ch);  // 파일에서 읽은 문자 출력
    }

    fclose(fp);  // 파일 닫기
    return 0;
}

4. fgets()

#include <stdio.h>
char *fgets(char * restrict s, int n, FILE * restrict stream);
#include <stdio.h>

int main() {
    char str[50];  // 최대 49자 + 널 문자('\0') 저장 가능

    printf("문자열을 입력하세요: ");
    fgets(str, sizeof(str), stdin);  // 최대 (sizeof(str) - 1) 글자 입력

    printf("입력된 문자열: %s", str);
    return 0;
}
문자열을 입력하세요: Hello World
입력된 문자열: Hello World