Maison >développement back-end >C++ >Comment les flux C peuvent-ils être utilisés pour gérer de manière fiable les entrées numériques invalides ?
Problème :
Le code fourni vise à empêcher les caractères non numériques d'être accepté comme entrée. Cependant, il ne parvient pas à gérer les situations dans lesquelles l'entrée inclut un caractère après un nombre valide.
Solution proposée :
Pour résoudre ce problème, nous suggérons d'utiliser une approche différente. en utilisant std::getline et std::string.
Code Extrait :
#include <string> #include <sstream> int main() { std::string line; double d; while (std::getline(std::cin, line)) { std::stringstream ss(line); if (ss >> d) { if (ss.eof()) { // Success break; } } std::cout << "Error!" << std::endl; } std::cout << "Finally: " << d << std::endl; }
Explication :
Cette solution révisée suit ces étapes :
Cette approche garantit que seuls les éléments réels valides les nombres sont acceptés en entrée, quels que soient les caractères ou espaces de fin dans l'entrée.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!