web-dev-qa-db-ja.com

std :: stringを整数に変換する

std::stringに格納されているstd::vectorを整数に変換し、それをパラメーターとして関数に渡そうとしています。

これは私のコードの簡略化されたバージョンです:

vector <string> record;
functiontest(atoi(record[i].c_str));

私のエラーは次のとおりです:

error: argument of type ‘const char* (std::basic_string<char, std::char_traits<char>, std::allocator<char> >::)()const’ does not match ‘const char*’

これどうやってするの?

19
Daniel Del Core

C++ 11の場合:

int value = std::stoi(record[i]);
37
Pete Becker

標準ライブラリの文字列ストリームを使用します。よりクリーンで、CよりもC++です。

int i3;
std::stringstream(record[i]) >> i3; 
12
Indy9000
record[i].c_str

と同じではありません

record[i].c_str()

これは実際にエラーメッセージから取得できます。関数はconst char*を期待していますが、std::basic_string<char, std::char_traits<char>, std::allocator<char> >を返すconst char*クラスのメンバー関数へのポインターであるconst char* (std::basic_string<char, std::char_traits<char>, std::allocator<char> >::)()const型の引数を提供しています引数はありません。

11
Luchian Grigore
#include <boost/lexical_cast.hpp>

functiontest(boost::lexical_cast<int>(record[i]));
0
Darko Veberic