표준 입력 (cin)
대부분의 프로그램 환경에서 표준 입력의 기본값은 키보드입니다. C++ 스트림 객체가 이에 접근할 수 있도록 정의한 것이 cin
입니다.
C++에서 지원하는 기본 자료형은 추출 연산자 (>>
)를 사용하여 사용자의 키보드 입력을 프로그램에서 얻을 수 있습니다.
int n, q;
cin >> n >> q;
cin과 문자열(strings)
기본 자료형과 동일하게 추출 연산자 (>>
)를 써서 cin
에서 문자열을 얻을 수 있습니다.
// cin with strings
#include <iostream>
#include <string>
using namespace std;
int main ()
{
string myName;
cout << "What's your name?" << endl;
cin >> myName;
cout << "Hello " << myName << endl;
return 0;
}
What's your name? YJ Song
Hello YJ
하지만 cin
에 적용된 추출 연산은 공백을 추출할 값이 종료되는 것으로 인식합니다. 따라서 방금 작성한 코드는 항상 문장에서 첫 단어만 추출됩니다.
공백이 포함된 한 줄의 입력된 모든 값을 받으려면 추출 연산자 대신 getline
함수를 사용해야 합니다.
// cin with strings
#include <iostream>
#include <string>
using namespace std;
int main ()
{
string mystr;
cout << "What's your name?" << endl;
getline (cin, mystr);
cout << "Hello " << mystr << endl;
return 0;
}
이 코드의 실행 결과는 다음과 같습니다.
What's your name? YJ Song
Hello YJ Song
결론
일반적인 콘솔 프로그램은 사용자가 원하는 명령을 입력한 후, 입력을 완료하였음을 나타내기 위해 ENTER 키를 입력합니다. 따라서 한 줄씩 입력값을 처리하는 것이 대부분 올바른 처리방법입니다. 따라서 이번 포스트에서 알아본 getline
은 프로그램의 입력 형식이 별도로 정의되어 있는 경우를 제외하면 유용하게 사용될 것입니다.
'프로그래밍 언어 > C++' 카테고리의 다른 글
[C++] 포인터를 참조형 파라미터 함수의 인자로 사용하기 (0) | 2022.10.01 |
---|---|
[C++] 서식을 사용한 문자열 생성자 (0) | 2021.05.17 |
C++ 가변 배열(Variable Sized Arrays) (0) | 2020.02.10 |
C++ String (0) | 2018.10.19 |
C++ 클래스(Class) (0) | 2018.07.06 |