본문 바로가기

C++

개행 문자 입력 방식

헤더파일

#include <iostream>

 

Cin 함수와 getline 함수로 나뉘어진다.

Cin은 개행문자를 입력 받으며, cin >> a >> '\n' 형태를 띈다.

000 천재 라고 입력을 하였을때, a 는 000만 입력을 받을것이다.

따라서 cin >> a >> '\n'cin >> b >> '\n'처럼 값을 받아옴으로서

000

천재를 입력 받을 수 있다.

 

이에 추가적으로 getline()함수가 존재한다.

getline함수는 개행 문자의 ('\n')을 기준으로 문자열의 끝을 인식한다.

사용자 정의로 개행 문자의 종료를 알리기 위해서 getline(cin, line, '.') 처럼 세번째 인자에 종료를 선언할 값을 설정하면 된다.

 

using namespace std;

string s;

int main()
{
    getline(cin, s);    // iostream 헤더 파일
    cout << s << '\n';  // getline() 기본적으로 개행 문자 (\n) 을 줄의 끝으로 입력한다.
    return 0;           // getline(cin, line,'.') 세번째 인자에 종결 문자 선언.
}

 

 

getline 받을때의 주의할 점

cin으로 T 개의 getline을 받을지 설정하고, T개 만큼 getline이 들어올 수 있다.

이러한 상황에서는 문자열을 기반으로 버퍼 플래시를 해야한다.

위에, 설명한 상황과 같이 버퍼에 특정 문자열이 남아있는 상황에서 getline을 호출하기 때문에, 버퍼에 '\n'이 남아버리기 때문이다.

 

버퍼의 개행 문자를 없애기 위해 getline(cin, bufferflush)을 호출하면 된다.

 

using namespace std;

int T;
string s;

int main()
{
    cin >> T;
    string bufferflush;
    getline(cin, bufferflush);
    for(int i = 0; i < T; i++)
    {
        getline(cin, s);
        cout << s << '\n';
    }
   return 0;
}

 

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

함수 오버로딩  (1) 2024.09.18
String 메서드  (0) 2024.05.24
Fill 함수  (0) 2024.03.26
표준 템플릿 라이브러리  (0) 2024.03.18
Pair 클래스  (0) 2024.03.12