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*’
これどうやってするの?
C++ 11の場合:
int value = std::stoi(record[i]);
標準ライブラリの文字列ストリームを使用します。よりクリーンで、CよりもC++です。
int i3;
std::stringstream(record[i]) >> i3;
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
型の引数を提供しています引数はありません。
#include <boost/lexical_cast.hpp>
functiontest(boost::lexical_cast<int>(record[i]));