#include<iostream>
#include<string>
int main()
{
using namespace std;
const char my_str[] = "Hello, World";
const string my_hello = "Hello, World";
cout << my_hello << endl;
return 0;
}
output : Hello, World
Hello, World
아직 배열에 대해 배우진 않았지만, 배열을 사용하여 문자열을 사용하는 방식이 프로그래머들이 자주 사용하는 방식이다. 하지만 아래의 string을 이용하여 문자열을 사용하는 방식은 프로그램들에게 귀찮음을 덜라는 일종의 사용자 정의 자료형 형식이라고 생각하면 될 듯하다. 좀 더 편한 기능들이 많이 들어가 있다.
#include<iostream>
#include<string>
int main()
{
using namespace std;
cout << "Your name ? : ";
string name;
cin >> name;
cout << "Your age ? : ";
string age;
cin >> age;
cout << name << " " << age << endl;
return 0;
}
아주 기본적인 프로그램이다. 사용자의 이름과 나이를 받아서 출력하는 프로그램인데, 여기서도 중요한 부분이 있다. 이름을 붙여쓰면 상관이 없는데, 만약 띄어쓰기를 사용하여 출력하면 문제가 생긴다.무엇이 문제일까? cin
같은 경우 빈칸이 있으면 하나의 입력을 받았다고 생각한다. 그 다음에 입력된 것은 buffer에 저장되어 있다가 다음 문장에 출력되는 것이다.
#include<iostream>
#include<string>
int main()
{
using namespace std;
cout << "Your name ? : ";
string name;
//cin >> name;
std::getline(cin, name);
cout << "Your age ? : ";
string age;
//cin >> age;
std::getline(cin, age);
cout << name << " " << age << endl;
return 0;
}
위의 문제를 해결하기 위해 getline()
을 사용하여 띄어쓰기 문제를 해결하는 것을 볼 수있다. getline()
같은 경우에 라인 단위로 읽어들여 문제를 해결할 수가 있다.