我正在尝试获取一个字符串并将其解析为一个 int 。我已经阅读了很多答案,似乎使用stoi
是最新的方式。在我看来stoi
uses std
,但我得到了Function 'stoi' could not be resolved
德斯皮特雷using namespace std;
#include <iostream>
#include <string>
#include <cstring>
#include <fstream>
#include<stdlib.h>
using namespace std;
int main(int argc, char* argv[]) {
string line = "";
string five = "5";
int number = stoi(five); //Error here with stoi
return 0;
}
任何想法是什么导致了这个?
Update:
我正在使用 Eclipse。我的标志是:-c -fmessage-length=0 -std=c++11
如果您使用 GCC 或 MINGW,那么这就是答案:MinGW 上的 g++ 4.6.1 中不存在 std::stoi https://stackoverflow.com/a/8543540/2056153
这是 vswprintf 的非标准声明的结果
视窗。 GNU 标准库定义
_GLIBCXX_HAVE_BROKEN_VSWPRINTF 在此平台上,这反过来会禁用您尝试使用的转换函数。你可以
在此处阅读有关此问题和宏的更多信息:http://gcc.gnu.org/bugzilla/show_bug.cgi?id=37522 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=37522.
如果您愿意修改随 MinGW 分发的头文件,
您可以通过删除来解决此问题
!define(_GLIBCXX_HAVE_BROKEN_VSWPRINTF) 宏位于第 2754 行
.../lib/gcc/mingw32/4.6.1/include/c++/bits/basic_string.h,并添加
它返回到第 2905 行到第 2965 行(这些行引用了
std::vswprintf)。您将无法使用 std::to_wstring
函数,但许多其他转换函数应该是
可用的。
请始终提供平台和编译器信息。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)