在名称空间std中没有名为stoi的成员

时间:2013-10-20 14:42:19

标签: c++ string parsing compiler-errors string-parsing

我正在测试以下链接中找到的std::stoi功能: http://en.cppreference.com/w/cpp/string/basic_string/stol
但我得到了错误:

  

在名称空间std。

中没有名为stoi的成员

我该怎么办? 请告知谢谢。

P.S:我正在使用Xcode Ide来做我的c ++。

#include <iostream>
#include <string>

int main()  {
   std::string test = "45";
   int myint = std::stoi(test);
   std::cout << myint << '\n';
}

图像

no member named stoi in namespace 'std'

error

3 个答案:

答案 0 :(得分:10)

std::stoi仅在C ++ 11之后可用。如果您没有C ++ 11支持,这里是基于std::istringstream的C ++ 03解决方案:

std::string test = "45";
std::istringstream is(test);
int myInt;
if (is >> myInt)
    std::cout << myint << std::endl;

您只需要#include <sstream>

答案 1 :(得分:6)

首先,你需要一个支持C ++ 11的编译器,你需要在“C ++ 11模式”下编译(在某些情况下)。

其次,如果这实际上是 intellisense 问题(看起来可能是这样),那么它可能只是你的IDE还不支持C ++ 11。

答案 2 :(得分:1)

如果您可以使用stdlib.h,那么其他方式可以使用atoi(const char *)

int myint = atoi(test.c_str());