Kein Mitglied benannt, es ist im namespace std
Ich bin testen std::stoi
Funktion gefunden in den unten stehenden link:
http://en.cppreference.com/w/cpp/string/basic_string/stol
aber ich habe den Fehler:
Kein Mitglied benannt, es ist im namespace std.
Was soll ich tun?
Bitte beraten Sie, danke.
P. S: ich bin mit Xcode Ide zu tun, meine c++.
#include <iostream>
#include <string>
int main() {
std::string test = "45";
int myint = std::stoi(test);
std::cout << myint << '\n';
}
Bild
- Hast du kompilieren mit
-std=c++11
? - Ich Zweifel so. und ich bin mir nicht sicher, wie und wo, um zu überprüfen, ob ich kompiliert mit -std=c++11.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Erste von allen, müssen Sie einen compiler unterstützt C++11, und Sie brauchen, um zu kompilieren in "C++11-Modus" (in einigen Fällen).
Zweitens, wenn dies in der Tat ein intellisense Problem (und es sieht aus wie es auch sein mag), dann könnte es einfach sein, dass deine IDE nicht unterstützt C++11 noch nicht.
std::optional
) auch in C++17 Modus, C++14 ist nun alt genug und ich bin mir nicht bewusst, dass die Unterstützung für etwas, was als Kernstd::stoi
fehlt.#if ((__cplusplus >= 201103L) && defined(_GLIBCXX_USE_C99) && !defined(_GLIBCXX_HAVE_BROKEN_VSWPRINTF))
Jedoch niemand erwähnt, eine andere Lösung als die Definition _GLIBCXX_USE_C99 und niemand bot eine Erklärung an, warum sollte ich eine solche definition manuell (sieht aus wie ein bug für mich, obwohl).std::es ist
ist nur verfügbar, seit C++11. Im Fall, dass du kein C++11-Unterstützung, hier ist der C++03 Lösung basiert aufstd::istringstream
:brauchen Sie nur
#include <sstream>
std::strtol()
.char*
und es ist in<cstdlib>
. Aber guter Punkt 🙂Wenn Sie verwenden können
stdlib.h
, dann anderen Weg, um es Arbeit zu verwendenatoi(const char *)