6

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

命名空间 std 中没有名为 stoi 的成员。

我应该怎么办?请指教谢谢。

PS:我正在使用 Xcode Ide 来做我的 c++。

#include <iostream>
#include <string>

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

图片

命名空间“std”中没有名为 stoi 的成员

错误

4

3 回答 3

10

std::stoi仅从 C++11 开始可用。如果您没有 C++11 支持,这里是基于以下的 C++03 解决方案std::istringstream

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

你只需要#include <sstream>

于 2013-10-20T14:47:29.163 回答
7

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

其次,如果这实际上是一个智能感知问题(看起来可能是),那么可能只是您的 IDE 还不支持 C++11。

于 2013-10-20T14:45:22.293 回答
1

如果你可以使用stdlib.h,那么其他让它工作的方法就是使用atoi(const char *)

int myint = atoi(test.c_str());
于 2016-03-21T12:45:56.037 回答