-
읽은 문자 개수 알아내기c++ 2018. 11. 22. 22:35
istream의 gcount() 멤버 함수를 이용하여 최근에 읽은 문자의 개수를 알아낼 수 있다.
int gcount() //최근에 입력 스트림에서 읽은 바이트수(문장의 개수)리턴. <Enter> 키도 개수에 포함
getline()으로 한 라인을 읽으면 몇 개의 문자를 읽었는지 알 수가 없다.
gcount()를 이용하면 <enter>키를 포함하여 실제 읽은 문자의 개수를 알아낼 수 있다.
ex) char line[80];
cin.getline(line,80);
int n = cin.gcount(); //cin.getline()에서 읽은 문자의 개수 리턴
위의 코드에서 사용자가 'Hello\n' 를 입력하면 cin.getline(line,80)가 읽은 문자의 개수는 6이다.
그러므로 cin.gcount()는 6을 리턴한다. 그리고 line[] 배열에는 'Hello\0'가 들어 있다.
하지만 get()으로 라인을 읽는 경우 사용자가 똑같이 입력하면 cin.gcount()는 5를 리턴한다..
ex) char line[80];
cin.get(line, 80);
int n = cin.gcount();
n = 5
getline()과 달리 get()은 '\n'을 cin의 스트림 버퍼에 그대로 남겨 두기 때문이다.
'c++' 카테고리의 다른 글
클래스 객체 생성 및 활용 예제 (0) 2018.11.23 한 줄을 읽고자 할 때 get()과 getline() 중 어떤 것이 좋은가? (0) 2018.11.22 std::sort() (0) 2018.11.22 vector 컨테이너 (0) 2018.11.22 문자열 다루기 (0) 2018.11.19