강의

멘토링

커뮤니티

인프런 커뮤니티 질문&답변

TaeChoon Park님의 프로필 이미지
TaeChoon Park

작성한 질문수

홍정모의 따라하며 배우는 C++

18.1 istream으로 입력받기

14:18 개행문자

작성

·

310

1

14:18을 보면 cin.getline 과 cin.get을 사용한 경우의 차이를 보여주고 있습니다.

cin.getline은 '₩n' 을 읽어오고 

cin.get은 그렇지 않다는게 그 차이인데요

두번의 입력코드에서 상단에 cin.getline 을 쓰건 cin.get을 쓰건 하단의 cin.getline에 의해 '₩n'이 읽어지는데 출려결과를 보면 '₩n'이 실행되지 않은 모습입니다.

endl도 있으니 한칸 더 줄바꿈되어야 될 것 같은데요.

endl 과 '₩n' 둘중하나만 실행된 모습입니다.

보통 c에서는 개행문자를 읽으면 콘솔에 그대로 빈칸이 하나생겼는데 여기서는 그렇지 않네요

답변부탁드립니다!! 

답변 1

0

getline은 두 개 존재하는데...
istream의 getline, string의 getline
사용한 부분은 istream의 getline임에도 불구하고, 설명한 부분은 string의 getline이네요.
istream의 getline은 cstyle string으로 받습니다. 강의의 내용이 분명히 틀린 것은 맞습니다만 아래 코드처럼 어떻게든 확인해보실 수 있으셨을텐데, 이 부분은 조금 아쉽습니다.

#include <iostream>
using namespace std;
int main()
{
	char buf[100];
	cin.getline(buf, 100);
	cout << cin.gcount() << " " << buf << endl;

	for (size_t i = 0; i < cin.gcount(); i++)
	{
		cout << (int)buf[i] << endl;
	}
}
TaeChoon Park님의 프로필 이미지
TaeChoon Park

작성한 질문수

질문하기