C++ - stoi() 未在此范围内声明
C++ - stoi() was not declared in this scope
我正在通过编写来自用户的简单 input/ouput 来练习我的 C++。我现在已经搜索了一个多小时如何将字符串转换为 int。每个答案都是不同的,并且需要其他东西。
我正在使用 Code::Blocks v.13.12。 MingW32 文件夹被添加到环境变量中。我最终使用 stoi 将我的字符串转换为带有 try/catch 块的整数。我通过转到 Settings -> Compiler
并勾选 Have g++ follow the C++11 ISO language standard [-std=c++11]
在 Code::Blocks 中添加了 C++11 支持。 它在 CB 中编译和运行良好,但是当我尝试在命令行中手动编译时出现此错误:
error: 'stoi' was not declared in this scope
。它所指的行:characters = stoi(input);
这是我迄今为止尝试过的命令:
g++ -std=c++11 main.cpp
& g++ -std=c++11 -c main.cpp -o main.o
& mingw32-g++ -std=c+11 -c main.cpp -o main.o
(根据输出日志,这是 CB 使用的内容)
如果您有比 stoi()
更好的示例,请尽量简单,并添加 try/catch.
的全文
编辑:这写在我文件的顶部:
#include <iostream>
#include <stdlib.h>
#include <time.h>
#include <string>
#include <algorithm>
#include <stdexcept>
using namespace std;
错误信息指的是:
int player;
string input;
cin >> input;
player = stoi(input)
我的 Code::Blocks 编译器输出此日志:
mingw32-g++.exe -std=c++11 -c "C:\Users\<name>\#C++\main.cpp" -o "C:\Users
<name>\#C++\main.o"
mingw32-g++.exe -o "C:\Users\<name>\#C++\main.exe" "C:\Users
<name>\#C++\main.o"
Process terminated with status 0 (0 minute(s), 0 second(s))
0 error(s), 0 warning(s) (0 minute(s), 0 second(s))
源代码,按要求:已删除,因为它与解决方案无关。
我设法让它工作了!我从以下位置下载了最新的 Mingw32 版本(本文为 GCC 5.1.0):http://nuwen.net/mingw.html.
我将环境变量更改为 <your path>\MinGW\bin
和 运行 g++ -std=c++11 -static main.cpp -o test.exe
。工作起来很有魅力。仍然不知道 C::B 是如何做到的,虽然它不能通过命令行工作,即使它们指向同一个文件夹。
我正在通过编写来自用户的简单 input/ouput 来练习我的 C++。我现在已经搜索了一个多小时如何将字符串转换为 int。每个答案都是不同的,并且需要其他东西。
我正在使用 Code::Blocks v.13.12。 MingW32 文件夹被添加到环境变量中。我最终使用 stoi 将我的字符串转换为带有 try/catch 块的整数。我通过转到 Settings -> Compiler
并勾选 Have g++ follow the C++11 ISO language standard [-std=c++11]
在 Code::Blocks 中添加了 C++11 支持。 它在 CB 中编译和运行良好,但是当我尝试在命令行中手动编译时出现此错误:
error: 'stoi' was not declared in this scope
。它所指的行:characters = stoi(input);
这是我迄今为止尝试过的命令:
g++ -std=c++11 main.cpp
& g++ -std=c++11 -c main.cpp -o main.o
& mingw32-g++ -std=c+11 -c main.cpp -o main.o
(根据输出日志,这是 CB 使用的内容)
如果您有比 stoi()
更好的示例,请尽量简单,并添加 try/catch.
编辑:这写在我文件的顶部:
#include <iostream>
#include <stdlib.h>
#include <time.h>
#include <string>
#include <algorithm>
#include <stdexcept>
using namespace std;
错误信息指的是:
int player;
string input;
cin >> input;
player = stoi(input)
我的 Code::Blocks 编译器输出此日志:
mingw32-g++.exe -std=c++11 -c "C:\Users\<name>\#C++\main.cpp" -o "C:\Users
<name>\#C++\main.o"
mingw32-g++.exe -o "C:\Users\<name>\#C++\main.exe" "C:\Users
<name>\#C++\main.o"
Process terminated with status 0 (0 minute(s), 0 second(s))
0 error(s), 0 warning(s) (0 minute(s), 0 second(s))
源代码,按要求:已删除,因为它与解决方案无关。
我设法让它工作了!我从以下位置下载了最新的 Mingw32 版本(本文为 GCC 5.1.0):http://nuwen.net/mingw.html.
我将环境变量更改为 <your path>\MinGW\bin
和 运行 g++ -std=c++11 -static main.cpp -o test.exe
。工作起来很有魅力。仍然不知道 C::B 是如何做到的,虽然它不能通过命令行工作,即使它们指向同一个文件夹。