티스토리 뷰

C++/Baekjoon

백준11720

그레고리 2022. 2. 2. 20:07
728x90

여러개의 숫자를 줄바꿈과 공백 없이 입력받아야한다.

- cin >> 는 공백문자를 기준으로 값을 받아오고, 개행을 해야지 다음 줄로 넘어갈 수 있기 때문에 사용이 어렵다. 

- string을 사용한다면 각 문자끼리 띄어내는 것이 어렵다. 

- 따라서 char[]을 사용했다. 

c++에서 char[] 입력을 받으려면 cin.getline(char* str, int n ) 함수를 사용한다. 문자배열에 n-1개의 문자를 받아온다. 

 

cin.ignore()이 필요한 이유는 cin>>은 마지막 개행 문자를 버퍼에 남겨둔다. ignore이 없으면 다음 입력을 받을 때 버퍼에 남아있는 개행 문자가 그대로 들어가 나에게 입력을 받지 않고 무시해버릴 수 있다. 따라서 Ignore을 사용해서 한번 버퍼를 비우고 다음 입력을 받아야한다. 

#include <iostream>
using namespace std;

int main(){
    int cnt;
    int cs;
    int total = 0;

    cin >> cnt;
    char num[cnt];    
    cin.ignore();
    cin.getline(num, cnt+1);
    for(int i=0;i<cnt;i++){
        total += num[i] -'0';
    }
    
    cout<<total;

}

 

 

 

728x90

'C++ > Baekjoon' 카테고리의 다른 글

백준1157  (0) 2022.02.04
백준2675  (0) 2022.02.03
백준10809  (0) 2022.02.03
백준15596, 4673  (0) 2021.09.29
백준 2557, 10869, 10818  (0) 2021.09.29
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/05   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
글 보관함