我正在测试以下链接中找到的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';
}
图像
答案 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());