-->

转换的std :: string到整数(Convert std::string to integer

2019-07-31 23:53发布

我想一个转换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*’

我怎样才能做到这一点?

Answer 1:

用C ++ 11:

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


Answer 2:

从标准库使用stringstream的。 它的清洁,这是相当C ++不是C.

int i3;
std::stringstream(record[i]) >> i3; 


Answer 3:

record[i].c_str

是不一样的

record[i].c_str()

实际上,你可以从错误信息得到这样的:该函数需要const char* ,但你提供类型的参数const char* (std::basic_string<char, std::char_traits<char>, std::allocator<char> >::)()const是一个指针,指向类的成员函数std::basic_string<char, std::char_traits<char>, std::allocator<char> >它返回一个const char*并且不带任何参数。



Answer 4:

#include <boost/lexical_cast.hpp>

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


文章来源: Convert std::string to integer