Znalazłem ten kod online jako szablon do wykonywania łańcucha znaków w float/int/double conversion. To tylko tutaj, więc mam coś do odniesienia dla pytania ...String to float using stringstream
Chcę, aby użytkownik wprowadził liczbę jako ciąg znaków, przekonwertował ją na wartość zmiennoprzecinkową, przetestował pod kątem powodzenia i porzucił, jeśli wpis był " Q 'lub wydrukuj "Niepoprawne dane wejściowe", jeśli nie jest to znak "Q'uit" i wróć, aby uzyskać więcej danych wejściowych.
Jaka jest składnia testu niepowodzenia konwersji? Czy byłby to ss.fail()?
// using stringstream constructors.
#include <iostream>
#include <sstream>
using namespace std;
int main() {
int val;
stringstream ss (stringstream::in | stringstream::out);
ss << "120 42 377 6 5 2000";
/* Would I insert an
if(ss.fail())
{
// Deal with conversion error }
}
in here?! */
for (int n=0; n<6; n++)
{
ss >> val;
cout << val*2 << endl;
}
return 0;
}
co składnia błąd otrzymujesz? –