以下代码本质上应该重复我输入的任何双精度数值。但是,例如,当我使用“ 45 * 45”作为输入时,它将为我提供“ Value is 45”的输出,将所有内容都删除*。我希望它以“不是双精度数值”的形式返回。我该怎么办?任何帮助将不胜感激!
#include <iostream>
#include <iomanip>
#include <cmath>
#include <cstdlib>
#include <cstring>
using namespace std;
int main() {
double number1; //Initialize Numerical Value
std::cout << "Please input a double precision numerical value :";
std::cin >> number1;
if (!cin) {
cout << "Not a double precision numerical value" << endl;
}
else if (cin) {
cout << "Value is: " << number1;
}
else {
cout << "Error";
}
return 0;
}