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
'📊알고리즘 > 이론' 카테고리의 다른 글
[문자열 매칭 알고리즘 #1] KMP 알고리즘 (0) | 2023.08.22 |
---|---|
[ C로 구현하는 ] 그래프 (0) | 2023.08.08 |
[리스트ADT] 원형 리스트 문제 (0) | 2023.04.01 |
[자료구조] 원형배열 ADT (0) | 2023.03.31 |
[연결리스트 ADT] 추가 기능 구현 2가지 방법 (0) | 2023.03.26 |