C++ cin 입력 횟수 정해지지 않은 경우

YUNU·2024년 1월 16일

알고리즘

목록 보기
6/15
post-thumbnail

🤖 Algorithm


🟦 cin Enter 입력할 때까지 반복하기

    while(!cin.eof())
    {
        cin>>N;
        inputs.push_back(N);

        //cin 상태 초기화
        cin.clear();
        //입력 버퍼 비움
        cin.ignore(std::numeric_limits<std::streamsize>::max(), '\n'); 

        //다음 문자가 enter key라면 입력 종료
        if (cin.peek() == '\n') 
        {
            break;
        }
    }

처음에 다음과 같은 방식으로 문제를 풀었는데 답은 맞게 출력되지만 채점에선 틀림

	while(cin>>N && N!='\n')
    {
        inputs.push_back(N);

        cin.clear();
        cin.ignore(std::numeric_limits<std::streamsize>::max(), '\n'); 
   
        if (cin.peek() == '\n') 
        {
            break;
        }
    }

cin >> N && N != '\n'으로 조건을 설정하게 되면
N으로 \n을 입력받았을 때 cin은 정상적으로 입력을 받고 그 후에 반복문을 종료함
N으로 \n을 입력되어서는 안됨

profile
DDeo99

0개의 댓글