Namespaces
Variants

std::basic_istream<CharT,Traits>:: getline

From cppreference.net
basic_istream & getline ( char_type * s, std:: streamsize count ) ;
(1)
basic_istream & getline ( char_type * s, std:: streamsize count, char_type delim ) ;
(2)

스트림에서 줄의 끝 또는 지정된 구분자 delim 까지의 문자를 추출합니다.

첫 번째 오버로드는 getline ( s, count, widen ( ' \n ' ) ) 와 동등합니다.

UnformattedInputFunction 으로 동작합니다. sentry 객체를 구성하고 검사한 후, * this 로부터 문자를 추출하여 s 가 가리키는 첫 번째 요소를 시작으로 하는 배열의 연속된 위치에 저장합니다. 다음 조건 중 하나가 발생할 때까지 계속됩니다(아래 순서대로 검사):

  1. 입력 시퀀스에서 파일 끝 조건이 발생합니다.
  2. 다음으로 사용 가능한 문자 c 가 구분자이며, 이는 Traits :: eq ( c, delim ) 에 의해 결정됩니다. 구분자는 추출되며( basic_istream::get() 과 달리) gcount() 에 카운트되지만 저장되지는 않습니다.
  3. count 가 양수가 아니거나 count - 1 개의 문자가 추출된 경우 (이 경우 setstate ( failbit ) 이 호출됩니다).

함수가 어떤 문자도 추출하지 않으면, ​ failbit 가 지역 오류 상태에 설정된 후 setstate() 가 호출됩니다.

어떤 경우든, count > 0 이면, 배열의 다음 연속 위치에 널 문자 CharT ( ) 를 저장하고 gcount() 를 업데이트합니다.

목차

참고 사항

조건 #2가 조건 #3보다 먼저 테스트되기 때문에, 버퍼에 정확히 맞는 입력 라인은 failbit 를 트리거하지 않습니다.

종료 문자가 추출된 문자로 간주되기 때문에, 빈 입력 줄은 failbit 를 트리거하지 않습니다.

매개변수

s - 문자를 저장할 문자열에 대한 포인터
count - s 가 가리키는 문자열의 크기
delim - 추출을 중지할 구분 문자. 추출되지만 저장되지는 않습니다.

반환값

* this

예외

failure if an error occurred (the error state flag is not goodbit ) and exceptions() is set to throw for that state.

내부 연산에서 예외가 발생하면, 해당 예외는 catch되어 badbit 이 설정됩니다. 만약 exceptions() badbit 에 대해 설정되어 있다면, 예외가 다시 throw됩니다.

예제

#include <array>
#include <iostream>
#include <sstream>
#include <vector>
int main()
{
    std::istringstream input("abc|def|gh");
    std::vector<std::array<char, 4>> v;
    // 참고: 다음 루프는 getline()에서 반환된 스트림에 대한
    // std::ios_base::operator bool()이 false를 반환할 때 종료됩니다
    for (std::array<char, 4> a; input.getline(&a[0], 4, '|');)
        v.push_back(a);
    for (auto& a : v)
        std::cout << &a[0] << '\n';
}

출력:

abc
def
gh

결함 보고서

다음의 동작 변경 결함 보고서들은 이전에 발표된 C++ 표준에 소급 적용되었습니다.

DR 적용 대상 게시된 동작 올바른 동작
LWG 531 C++98 std::getline
count 가 양수가 아닌 경우를
처리할 수 없었음
이 경우에는 문자를
추출하지 않음

참고 항목

I/O 스트림에서 데이터를 문자열로 읽어들임
(함수 템플릿)
형식화된 데이터를 추출함
(public member function)
문자를 추출함
(public member function)
문자 블록을 추출함
(public member function)