C ++의 getline 함수 상세한 사용

당신은 입력 문자열에 착 >> 및 연산자를 사용할 수 있지만,주의가 필요한 몇 가지 문제가 발생할 수 있지만.

혓바닥 데이터를 읽기, 그것을 선행 공백 문자 (공백, 탭 또는 줄 바꿈)를 무시 전송하는 경우. 그것이이 다음 빈 문자로 읽을 때 첫 번째 공백이 아닌 문자를 읽기 시작 접촉되면, 읽기를 중지합니다. 다음 문장의 예를 들면 :

CIN >> NAMEL;

"마크"또는 "트웨인"를 입력하지만, 입력 문자열이 공백을 포함하지 CIN 때문에 "마크 트웨인"을 입력 할 수 없습니다. 다음 프로그램은 문제를 보여줍니다 :
    
    
  1. //이 프로그램은 경우에 발생할 수있는 문제를 보여
  2. // CIN은 문자열 객체로 문자 데이터를 읽는 데 사용됩니다.
  3. 사용법 #include <iostream>
  4. 사용법 #include <문자열> 문자열 개체를 사용하는 데 필요한 // 헤더 파일
  5. U g의 스페이스 성병 ;
  6.  
  7. int 형 ) (
  8. {
  9. 문자열 이름 ;
  10. 문자열 도시 ;
  11. COUT은 << "당신의 이름을 입력하십시오 :" ;
  12. CIN >> 이름 ;
  13. cout과 << "당신이 살고있는 도시를 입력 :" ;
  14. CIN >> 도시 ;
  15. cout과 << "안녕하세요," << 이름 << endl의 ;
  16. cout과 << "당신은에 살고있다" << 도시 << endl의 ;
  17. 반환 0 ;
  18. }
프로그램 출력 :

당신의 이름을 입력하세요 : 홍길동은
안녕하세요, 존 : 당신이 살고있는 도시 입력
당신은 미상에 살고을

사용자에게,이 예에서 도시의 도시 이름을 입력 할 기회를 것을 유의하십시오. 첫 번째 입력 문 때문에, 존과 암컷 사이의 공간 CIN 읽을 때, 그냥 존의 이름에 저장된 값으로, 읽기를 중지합니다. 제 2 입력 문장에서, 키보드 버퍼에 남아있는 문자를 사용 CIN가 발견 미상 도시 저장된 값.

이 문제를 해결하기 위해, 당신은 전화 사용 의 getline C ++ 기능을. 이 함수는, 선두와 공백을 포함한 전체 라인을 읽고 문자열 객체에 저장된다.

의 getline 함수는 다음과 같이 :

의 getline (inputLine, CIN);

CIN가 입력 스트림이 판독되고되는 경우, 변수 이름 문자열 inputLine 입력 문자열을 받았다. 다음 프로그램의 getline 함수의 사용을 보여줍니다 :
    
    
  1. //이 프로그램의 getline 함수를 사용하여 도시
  2. // 문자열 객체로 문자 데이터를 읽을 수 있습니다.
  3. 사용법 #include <iostream>
  4. 사용법 #include <문자열> 문자열 개체를 사용하는 데 필요한 // 헤더 파일
  5. 사용하는 네임 스페이스 표준을 ;
  6.  
  7. int 형 ) (
  8. {
  9. 문자열 이름 ;
  10. 문자열 도시 ;
  11. COUT은 << "당신의 이름을 입력하십시오 :" ;
  12. 의 getline ( CIN , 이름 );
  13. cout과 << "당신이 살고있는 도시를 입력 :" ;
  14. 의 getline ( CIN , 도시 );
  15. cout과 << "안녕하세요," << 이름 << endl의 ;
  16. cout과 << "당신은에 살고있다" << 도시 << endl의 ;
  17. 반환 0 ;
  18. }
프로그램 출력 :

당신의 이름을 입력하세요 : 홍길동은
시카고 : 당신가 살고있는 도시 입력
안녕하세요, 홍길동
당신은 시카고에 살고을

추천

출처www.cnblogs.com/xjyxp/p/11546060.html