엄범


```cpp

#include <iostream>

#include <sstream>


using namespace std;


int main() {

    string item = "abc\r\ndef\nghi";    // contain \r

    istringstream stream(item);

    while (getline(stream, item)) {

        cout << item << item.length() << '\n';    // item << item.length() may be folded

    }

    return 0;

}

```

실행 결과

```

4bc

def3

ghi3

```

문자열에 `` \r``이 포함되어 있는 경우, 이걸 파싱하면서 캐리지 리턴이 적용되어 커서가 맨 앞으로 가기 때문에 그 이후에 출력되는 데이터는 맨 앞에서부터 출력되어 이전에 출력된 데이터를 덮어 써버리는 결과를 가져온다.
그래서 `` \r``이 포함된 문자열 파싱 및 출력은 주의해주어야 한다. 


조금 더 간단한 예제는

```cpp

int main() {

    std::string item = "abcdefg\r";

    std::cout << item << "1234" << '\n';

    return 0;

}

```

```

1234efg

```