본문 바로가기
백준 알고리즘 코딩

[C언어] 백준 11718번 그대로 출력하기

by 1005_ 2025. 3. 23.

[ 문제 ]

입력 받은 대로 출력하는 프로그램을 작성하시오.

[ 입력 ]

입력이 주어진다. 입력은 최대 100줄로 이루어져 있고, 알파벳 소문자, 대문자, 공백, 숫자로만 이루어져 있다.

각 줄은 100글자를 넘지 않으며, 빈 줄은 주어지지 않는다.

또, 각 줄은 공백으로 시작하지 않고, 공백으로 끝나지 않는다.

[ 출력 ]

입력받은 그대로 출력한다.

[ 예제 입력 ]

Hello
Baekjoon
Online Judge

[ 예제 입력 ]

Hello
Baekjoon
Online Judge

 

[ 작성한 코드 ]

#include <stdio.h>

int main() {

    char S[100];

    while (scanf("%[^\n]", S) != EOF) {
        printf("%s\n", S);
        getchar();
    }

    return 0;
}

 

문제를 푸는데에는 다양한 방법이 있을 것 같지만 나는 문자열을 입력받는 방식으로 문제를 해결했다.

 

우선 EOF(End Of file) 는 입력이 끝났음을 알려주는 값이다.

파일을 읽거나 키보드 입력을 받을 때 더 이상 입력이 없으면 EOF라는 특별한 값이 반환되는데 C언어에서는 -1로 정의된다.

Windows 환경에서는 CTRL + Z를 입력하면 EOF가 입력된다.

 

getchar()는 한 글자를 입력받는 함수인데 내가 작성한 코드에서 enter을 만나기 전까지 모든 문자를 입력받지만 enter는 버퍼에 남게되어 버퍼를 비우기 위해 사용했다.

 

솔직히 만만한 문제라고 생각해서 아무 생각도 없이 문제를 풀었는데 버퍼와 getchar()라는 중요한 개념을 알게되었다.

 

알고리즘 분류

  • 구현
  • 문자열