공부/C++
C++, printf 이용하여 string 출력
하나리나
2022. 12. 8. 22:20
반응형
반응형
*개인공부를 위한 기록입니다. 잘못된 점에 대한 지적 감사드립니다.
1. 오류
C++에서 printf를 이용하여 string을 출력하려고 다음과 같이 예제를 작성하였습니다.
std::string fp;
printf("File name: %s\n",fp);
그리고, 오류는 다음과 같이 발생하였습니다.
In member function '_(function_name)_':
warning: format '%s' expects argument of type 'char*' , but argument 2 has type 'std::string' {aka 'std::__cxx11::basic_string<char>'} [-\format=]
... (중략)
2. 해결
printf는 c-style의 문자열만 지원하므로, 본 예제에서는 fp를 c-style로 변경해주면 간단히 해결할 수 있습니다.
std::string fp;
printf("File name: %s\n",fp.c_str());
즉, 원하는 string 변수 뒤에 .c_str()을 추가해주면 끝입니다.
반응형