ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • cin과 >> 연산자로 문자열을 입력 받을 때의 허점
    명품 c++ 공부 2020. 8. 24. 15:07

    >> 연산자를 이용하여 문자열을 입력받는 방법은 쉽고 간단한 반면, 유의해야할 점이 있다.

     

    그것은 바로 공백문자를 만나면 그 뒤의 문자는 인식하지않고 공백 전의 문자들만 인식하는것이다.

     

    예)

    #include<iostream>
    using namespace std;
    
    int main()
    {
    	char arr[10];
    	cout << "입력:";
    	cin >> arr;
    	cout << arr;
    
    }

     

    결과

     

    결과를 보면 공백 다음 233문자는 인식되지 않은걸 볼 수가있다... 

    즉 1234 문자를 읽은 후 빈칸은 만나 문자열 입력이 종료된것으로 판단하기 때문이다.

     

    이를 해결하기위해서 사용하는 함수가 있다.

     

    getline()함수

    cin.getline(char buf[],int size,char delimitChar)

    buf:키보드로 부터 읽은 문자열을 저장할 배열

    size:buf의 배열크기

    delimitChar:문자열 입력 끝을 지정하는 구분문자

     

    예)

    #include<iostream>
    using namespace std;
    
    int main()
    {
    	char arr2[10];
    	cout << "입력";
    	cin.getline(arr2,10, '\n');
    	cout << arr2;
    }

     

    결과

    결과를 보면 공백 뒷 문자도 인식이 되었다는것을 알 수 있음.

     

    '명품 c++ 공부' 카테고리의 다른 글

    실습예제2-16(난이도8)  (0) 2020.08.25
    실습 예제  (0) 2020.08.24
    #include 와 전처리기  (0) 2020.08.24
    String 으로 문자열 입력받기  (0) 2020.08.24
    예제2-5  (0) 2020.08.24
Designed by Tistory.