#include <iostream>
#include <string>
using namespace std;
int main()
{
const int size=20;
string name;
string dessert;
cout<<"이름: ";
cin>>name;
cin.get();
cout<<"디저트: ";
cin>>dessert;
cout<<endl;
cout<<"맛있는 "<<dessert;
cout<<" 디저트를 준비하겠습니다. "<<name<<" 님! ";
return 0;
}
원래 위소스가 변수들이 배열이었고, getline() 함수를 써서 입력을 받고 버퍼문제를 해결했음
근데 문제에서 위 소스에서 배열을 사용하지말고 string 클래스를 써서 다시 작성하라는 문제가 등장..따라서 나는 위소스처럼 썼는데,
cin.getline()이나, cin.get()함수나 둘다 매개변수를 쓰니 오버로딩된게 없는지 안되더라구요
그래서 걍 cin>>을 써서 name을 입력받고(참고로 이름은 두단어로 써야함 ex.Hong Gil 이런식,따라서 버퍼에 엔터키가남음) 버퍼에 남은 Enter키를
빨간색부분인 cin.get()함수를써서 없애주려고했는데 아니 웬걸 실행해보니 그래도 dessert를 입력못받고 넘어가버리는 현상...
이거 왜 버퍼를 해결하지 못합니까요?
string도 getline 있음
그리고 cin는 한단어밖에못받음
ㄴ 근데 cin.getline(name,20) 하니까 인스턴스인가 안맞다는데;;
cin>> 한단어밖에 못쓴다는 말이 무슨말임? 띄어쓰기가 안된다는말아님? 맞다면 그래서 이문제에서 getline 쓰려는건데..
cin >> a 하고 Hong kil 치면 Hong만 a에 드가고 kil은 버퍼에 남아있음
http://www.cplusplus.com/reference/string/string/getline/
이거써
ㅇㅇ//그니까 내말이 그 문제를 해결하기위해서 getline을 쓴건데 이게 string으로는 안되는거같던데..지금도 안돼..
아 됐다..해결은했음..