to_string et de les convertir.str() non déclaré dans le champ d'application
Je rencontre un problème en essayant de convertir un nombre en une chaîne de caractères. L'objectif est de l'erreur de vérification pour vous assurer que le numéro est d'une longueur spécifique. J'ai essayé d'utiliser à la fois to_string()
et convert.str()
fonctions, mais à obtenir la même erreur lorsque vous essayez de compiler.
Je suis en utilisant MinGw g++ de compiler et de réaliser j'ai besoin de lui dire que je veux la C++11 standard, je crois que j'ai fait. Mon compilateur de code est comme suit:
NPP_SAVE
CD $(CURRENT_DIRECTORY)
C:\MinGW\bin\g++ -std=c++11 "$(FULL_CURRENT_PATH)" -o "$(NAME_PART).exe"
cmd /c $(NAME_PART).exe
Maintenant, en supposant que cela est correct, mon code pour l'utilisation de to_string()
est comme suit:
#include <iostream>
#include <sstream>
#include <string>
using namespace std;
int main() {
int book_code = 0;
cout << "Please enter the four digit book code: ";
cin >> book_code;
string code = to_string(book_code);
while (!(cin >> book_code) || code.length() != 4){
cin.clear();
cin.ignore(10000, '\n');
cout << "That is not a valid code." << endl;
cout << "Please enter the four digit book code: ";
}
}
Et mon code pour l'utilisation de convertir.str() est comme suit:
int main() {
int book_code = 0;
cout << "Please enter the four digit book code: ";
cin >> book_code;
ostringstream Convert;
convert << book_code;
string code = convert.str();
while (!(cin >> book_code) || code.length() != 4){
cin.clear();
cin.ignore(10000, '\n');
cout << "That is not a valid code." << endl;
cout << "Please enter the four digit book code: ";
}
}
Aucune de ces a été un succès et les deux retournés
erreur: 'to_string" n'a pas été déclarée dans le champ d'application
Ai-je raté quelque chose d'évident?
Semble compiler (et exécuter); coliru.stacked-crooked.com/a/01ee396b5116e4a3
Je suis sûr à 90% que c'est un problème avec une ancienne version de mingw. Essayez de mingw-w64, ce projet est mis à jour (et malgré le nom prend en charge 32 bits binaires)
double possible de to_string n'est pas un membre de mst, dit g++
Jean, j'ai suivi les instructions de ce post et malheureusement j'ai reçu et de l'erreur: d'Abord, il dit que g++.exe a cessé de répondre. Je clique sur annuler puis-je obtenir une demande eror. "L'application n'a pas pu démarrer correctement (0xc0000005).
OriginalL'auteur Grr | 2015-06-29
Vous devez vous connecter pour publier un commentaire.
Dans MinGW
std::to_string()
n'existe pas, vous devez déclarer votre propre mise en œuvre.Je vous recommande d'utiliser MSYS2, il est plus actualizated et vous pouvez éviter ce type de problèmes.
Edit:
La vérification de la dot position dans
double
:Explication du code (les
while
boucle):Il obtient tous les caractères de la
std::string
et vérifie si elle n'est pas égale à la.
point de caractères, si le caractère n'est pas égal à.
il va ajouter +1 à lapos
variable.Il renvoie 2 et pas 3 parce que nous sommes en comptant à partir de 0 et non pas 1.
Aussi, cette question est un double.
J'ai mis à jour la réponse, vérifiez! Je ne sais pas si ce code est ce que vous cherchez, mais il fonctionne :p
vous n'avez pas besoin de toujours utiliser
std::
si vous ajoutezusing namespace std;
ci-dessous la#include
sOriginalL'auteur Jean Pierre Dudey
Vérifier que votre version de MinGw soutien to_string, comme le code ci-dessus compile correctement.
Je vous recommande une approche différente pour la longueur de la vérification, qui évite à l'aide de cordes:
Imprime:
OriginalL'auteur Jaka Konda