📊알고리즘/이론
[C++] 개행문자 기준으로 입력 받기
meteorfish
2023. 6. 4. 14:14
728x90
알아두어야 할 내용
- getline()은 표준입력 버퍼에 "\n"(계행문자)를 남기지 않는다!
사용 방법 및 원리
과일의 개수 입력 후, banana와 apple을 연속으로 입력하는 프로그램.
#include <iostream>
#include <string>
int main() {
int n;
std::cin >> n;
string* arr = new string[n];
getline(cin, arr[0]);
getline(cin, arr[1]);
return 0;
}
위 코드에서 n을 입력하고 엔터를 누르면, 엔터("\n")가 표준 입력 버퍼에 입력된다.
따라서, arr[0]에는 "\n"가 입력되는 사태가 발생한다.
그러므로, 우리는 "\n"를 표준입력버퍼에서 삭제해줘야한다.
`cin.ignore()`를 이용하자.
수정된 코드는 다음과 같다.
#include <iostream>
#include <string>
using namespace std;
int main() {
int n;
cin >> n;
cin.ignore(); // 계행문자 삭제
string* arr = new string[n];
getline(cin, arr[0]);
getline(cin, arr[1]);
return 0;
}
728x90