2014-07-06 13 views
-5

문자열 변수를 정수 또는 부동/double로 변환하는 데 사용되는 c_str(), atoiatof 함수를 사용하고 있습니다. 예를 들어 ,c_str(), atoi 및 atof 함수에 <cstring> 및 <stdlib.h>을 포함해야합니까?

val = atoi(val1.c_str()); 
val = atof(val1.c_str()); 

그래서, 내가 포함해야하고 있는지 알고 싶습니다. 감사합니다. .

+4

'atoi'를 사용해야합니다, 반드시 가장 좋은 참조하지 않고 친구 stdlib.h' '에 있습니다. 'c_str()'은'std :: string'의 멤버 함수로'string' 헤더에 있습니다. 여기에서 검색하여 정보를 얻을 수 있습니다 : http://en.cppreference.com/w/ – juanchopanza

+0

두 가지 가능성이 있습니다 : 컴파일러 경고가 변경 될 때까지 용의자를 포함 시키거나 juanchopanza가 언급 한대로 설명을 읽으십시오. – harper

+0

다운 voters downvote거야. – Korchkidu

답변

2

그 중 어떤 것도 헤더가 필요하지 않습니다. <cstring>. c_str() 함수는 <string>이 필요하고 <cstdlib> (<stdlib.h> 헤더의 C++ 버전)을 포함하면 std::atoistd::atof을 사용할 수 있습니다.

또한, 사이트 cplusplus.com은 아마 cppreference.com

+1

거의 :'atoi'와'atof'는'cstdlib'에있는 것이 보장되지 않습니다. 보장되는 것은 당신이'std :: atoi'와'std :: atof'를 얻는 것입니다. 'atoi'와'atof'는 모두'stdlib.h '에 들어 있습니다. – juanchopanza

+0

@juanchopanza 둘 다요? 확실하게 비''std' 버전을 의미합니다. –

+0

@JosephMansfield 나는 atoi와 atof를 모두 의미했습니다. 댓글을 수정했습니다. – juanchopanza