반응형
반응형
*개인공부를 위한 기록입니다. 잘못된 점에 대한 지적 감사드립니다.
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()을 추가해주면 끝입니다.
반응형
'공부 > C++' 카테고리의 다른 글
C++ 백준 1002번 (1) | 2023.12.25 |
---|---|
선형 대수 - 13. 선형 부분공간 (4) | 2023.11.02 |
선형 대수 - 8. 벡터의 정의 및 연산 (7) | 2023.09.26 |
C++과 Python의 차이, 컴파일 언어와 인터프리터 언어의 차이 (83) | 2023.09.07 |
C++, Vector Clear (내용 비우기) (0) | 2022.11.03 |
make: Nothing to be don for 'all' - 해결 방법 (0) | 2022.08.23 |
리눅스 Permission denied / cannot execute binary file (0) | 2022.07.15 |
#pragma once, C++의 header (0) | 2022.07.05 |