scanf는 c++이 아니라 c에서도 그다지 권장하는 함수가 아닌데 c++에서 마저 쓸 필요는 없을 것 같은데요.
getline()이나 cin으로 입력 받으시는 편이 나을 것 같습니다.
그리고 string 은 컴파일러마다 구현이 다를 수가 있고 배열만으로 구현되지 않을 수가 있어서
scanf 같은 함수로 입력 받으시려면 string 보다는 vector에 크기 지정 후 받으셔야 할 겁니다.
참고: [STL] 기존의 C API에 vector와 string을 넘기는 방법(http://dstein.egloos.com/2268196)
안됩니다. char[]로 받고 복사하거나 cin을
안됩니다. char[]로 받고 복사하거나 cin을 이용하세요.
굳이 하려고
굳이 하려고 한다면
scanf("%s",str.c_str());
로 할 수도 있겠지만 절대로 이렇게 하지 않으시는 것을 권장합니다.
굳이 scanf를 써야되나요?
scanf는 c++이 아니라 c에서도 그다지 권장하는 함수가 아닌데 c++에서 마저 쓸 필요는 없을 것 같은데요.
getline()이나 cin으로 입력 받으시는 편이 나을 것 같습니다.
그리고 string 은 컴파일러마다 구현이 다를 수가 있고 배열만으로 구현되지 않을 수가 있어서
scanf 같은 함수로 입력 받으시려면 string 보다는 vector에 크기 지정 후 받으셔야 할 겁니다.
참고: [STL] 기존의 C API에 vector와 string을 넘기는 방법(http://dstein.egloos.com/2268196)
댓글 달기