C++ - es ist (war) nicht deklariert ist, in diesem Umfang

Ich bin üben meine C++ - coding-einfache Eingabe - /Ausgabe-Nutzers. Ich habe nun schon die Suche über eine Stunde auf gewusst wie: konvertieren einer Zeichenfolge in einen int. Jede Antwort ist anders, und erfordern etwas anderes.

Ich bin mit Code::Blocks v. 13.12. MingW32-Ordner Hinzugefügt Umgebungsvariablen. Ich landete mit es ist meine konvertieren von string zu integer mit try/catch-block. Ich habe C++11-Unterstützung in Code::Blocks, indem Sie zu Settings -> Compiler - und tick -Have g++ follow the C++11 ISO language standard [-std=c++11]. Es kompiliert und läuft einwandfrei in CB, aber wenn ich versuche zu kompilieren manuell in der Kommandozeile bekomme ich diesen Fehler:

error: 'stoi' was not declared in this scope. Die Linie bezieht sich auf: characters = stoi(input);

Diese sind die Befehle, die ich bisher ausprobiert habe:
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 (was die CB ist mit nach der Ausgabe von log -)

Wenn Sie e besseres Beispiel als stoi() bitte machen Sie es einfach, und fügen Sie vollen text von try/catch.

BEARBEITEN: Das steht ganz oben in meiner Datei:

#include <iostream>
#include <stdlib.h>
#include <time.h>
#include <string>
#include <algorithm>
#include <stdexcept>
using namespace std;

Fehlermeldung bezieht sich auf:

int player;
string input;

cin >> input;
player = stoi(input)

Mein Code::Blocks compiler gibt Folgendes log:

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))

Source-code, wie verlangt: entfernt, da er nicht im Zusammenhang mit der Lösung.

  • Hast du #include <string>? Hast du das Präfix mit dem richtigen Umfang std::stoi?
  • Ich habe eine Reihe von Bibliotheken, einschließlich der <string>. Ich bin auch mit using namespace std;. Es läuft wunderbar in Code::Blocks und alles funktioniert wie es sollte. Aber nicht durch Befehl Linie.
  • Bitte nicht veröffentlichen "Warum ist das nicht mein code arbeitet" Fragen, ohne SSCCE und alle notwendigen Informationen, um das problem zu reproduzieren.
  • Tut mir Leid, nicht verwendet, um stackoverflow. Bearbeitet meine post.
  • wenn der code nicht super lange (was ich vermute, es ist nicht), könnten Sie fügen Sie alle die Quelle?
  • Source-code Hinzugefügt wird.
  • Welche version von mingw32 verwenden Sie? Siehe diese Diskussion, stackoverflow.com/questions/14590410/stoi-and-stoll-in-c sowie einige Kommentare in dieser Diskussion stackoverflow.com/questions/29088327/... sowie die Diskussion in diesem forum gcc.gnu.org/bugzilla/show_bug.cgi?id=52015
  • Habe ich eine bat-script von dieser Seite: forums.codeblocks.org/index.php?topic=9054.0 und es gab mir diese Ausgabe: #define __MINGW32_VERSION 3.20 und #define __W32API_VERSION 3.17. Überprüfen Sie Ihre links jetzt.
  • KORREKTUR: Mingw32-Pfad -> C:\Program Files (x86)\CodeBlocks\MinGW\lib\gcc\mingw32\4.7.1 ich denke, es ist v4.7.1?

InformationsquelleAutor theusual | 2015-06-05
Schreibe einen Kommentar