문제

그대로 출력하기 백준 11718번

리뷰

cin 은 공백을 만나는 순간까지만 입력을 받는다. 그래서 cin으로 풀 수는 없었고,

공백을 포함한 문자열이 100글자 이내인 조건을 읽고 char 배열을 만들어서 scanf로 풀었다.

다른 분들은 표준입력 stdin으로 fgets() 로 102글자 까지 입력받아서 풀었다.

/* fgets()
파일 입력 스트림에서 문자열을 가져와서 str이라는 주소에 넘겨준다. 

scanf()와는 달리, 개행문자를 만날 때 까지 문자열을 읽어들인다. 
마지막으로 읽은 문자 뒤에 자동적으로 NULL을 붙여서 반환한다. 

numChars : 입력받을 문자의 최대 개수
*/

char* fgets(char *str, int numChars, FILE *stream)

/*
성공적으로 읽어들이면, 함수는 str을 리턴한다. 
오류가 나도, EOF(파일의 끝)을 만나도 NULL이 리턴된다. 

참고로 scanf 함수는 개행 문자 뿐만이 아니라 ' ' 와 '\t' 에 의해서도 입력이 끝난다.

도움을 받은 BOJ 질문게시판의 필독 FAQ글
fgets 함수
scanf 함수

코드 1 : scanf 이용

#include <iostream>
using namespace std;

char A[102];

int main(void){

    while(scanf("%c", &A) != EOF){
        cout << A;
    }

    return 0;
}

**코드 2 : fgets이용

#include <iostream>
using namespace std;

char A[102];

int main(void){

    while(fgets(A, 102, stdin)){
        cout << A;
    }

    return 0;
}
728x90

'알고리즘 > 백준' 카테고리의 다른 글

2007년 백준 1924번  (0) 2020.08.25
열 개씩 끊어 출력하기 백준 11721번  (0) 2020.08.25
정수 삼각형 백준 1932  (0) 2020.08.22
연속합2 백준 13398  (0) 2020.08.22
연속합 백준 1912번  (0) 2020.08.19

+ Recent posts