Le problème est que le C++ est un langage à typage statique, ce qui signifie que si quelque chose est déclaré en tant que string
il s'agit d'une chaîne de caractères, et si quelque chose est déclaré en tant que double
il s'agit d'un double. Contrairement à d'autres langages comme JavaScript ou PHP, il n'existe aucun moyen de convertir automatiquement une chaîne de caractères en valeur numérique, car la conversion peut ne pas être bien définie. Par exemple, si vous essayez de convertir la chaîne de caractères "Hi there!"
à un double
il n'y a pas de conversion significative. Bien sûr, vous pourrait il suffit de définir le double
à 0.0 ou NaN, mais cela masquerait presque certainement le fait qu'il y a un problème dans le code.
Pour résoudre ce problème, ne mettez pas en mémoire tampon le contenu du fichier dans une chaîne de caractères. Au lieu de cela, lisez directement dans le fichier double
:
double lol;
openfile >> lol;
Cette méthode lit directement la valeur comme un nombre réel, et si une erreur se produit, elle provoquera l'utilisation de la fonction .fail()
pour qu'elle renvoie vrai. Par exemple :
double lol;
openfile >> lol;
if (openfile.fail()) {
cout << "Couldn't read a double from the file." << endl;
}