코딩/C++

    [C++] 문자열을 공백까지 입력받는 방법 (feat. 그대로 출력하기)

    [C++] 문자열을 공백까지 입력받는 방법 (feat. 그대로 출력하기)

    C++에서 문자열을 입력받을 때 띄어쓰기는 입력이 안되는 문제가 있다. 그냥 문자열을 입력받으면, 띄어쓰기는 입력받지 않으므로 띄어쓰기는 무시된다. 하지만 STL을 include하고 getline 메서드를 사용하면 띄어쓰기, 개행까지 입력받을 수 있다. getline(cin객체, 받을 문자열 변수) 로 사용한다. 띄어쓰기가 입력이 잘 된것을 확인할 수 있다. 개행문자도 입력이 잘 된다. 2021-08-29 수정 만일 개수를 입력받고, 특정 개수만큼 공백포함 문자를 입력받고 싶다면, 위처럼 입력받는 cin과 getline 사이에 getline을 한번 더 해준다. 개행문자가 입력이 되는 문제때문에 발생하는 것 같다. 11718번: 그대로 출력하기 입력이 주어진다. 입력은 최대 100줄로 이루어져 있고, 알파..

    [C++] 벡터 사용 시, () 선언과 [] 선언의 차이

    [C++] 벡터 사용 시, () 선언과 [] 선언의 차이

    vector 선언 시 []괄호와 ()괄호의 차이가 있다. []괄호로 선언시, 텅 빈 이차원 배열이라고 생각하면 된다. 각 벡터의 인덱스마다 동적으로 크기를 할당할 수 있다. ()괄호로 선언시, 처음에 그 공간들을 만든 후에 동적으로 크기를 늘릴 수 있다. 예시로 확인해 보자면 []괄호로 벡터 선언시, []괄호로 선언 시에는 배열의 높이에는 제한을 두고, 각 층마다는 동적으로 크기를 할당하겠다는 뜻이다. 위 코드는 벡터의 인덱스를 넘었으므로 에러가 나게 된다. 출력을 안해서 에러가 안나 보일 수 있겠지만 비정상적으로 종료된 것을 커맨드에서 확인할 수 있다. ()괄호로 벡터 선언시, 이 코드에서는 처음에 선언한 1001의 크기를 벗어났다. 하지만 처음 선언한 1001의 크기는 사실 큰 의미는 없다. 1001..