C++ 如果我想输入一个字符作为a,b,c的值,那么它会说“error”怎么办?

C++ 如果我想输入一个字符作为a,b,c的值,那么它会说“error”怎么办?,c++,dev-c++,C++,Dev C++,如果用户将在a、b、c上输入字符,我想显示错误 #include <iostream> #include <math.h> using namespace std; int main() { double a,b,c,d,X,Y; float x1,x2; char ans,i; do { cout << "Welcome!" <<endl << "

如果用户将在a、b、c上输入字符,我想显示错误

#include <iostream>
#include <math.h>
using namespace std;
int main()
{
    double a,b,c,d,X,Y;
    float x1,x2;
    char ans,i;

    do
    {
         cout << "Welcome!" <<endl
              << "To my Simple Machine" <<endl
              <<endl
              << "Enter the value of a:" <<endl;
         cin >>a;
         cout << "Enter the value of b:" <<endl;
         cin >>b;
         cout << "Enter the value of c:" <<endl;
         cin >>c;

         d=b*b-4*a*c;
         x1=(-1*b+sqrt(b*b-4*a*c))/2*a;
         x2=(-1*b-sqrt(b*b-4*a*c))/2*a;
         X=-b/2*a;

我无法编译它,因为它说g++.exe不工作

您应该将它存储在一个char变量中,检查它是否是一个数字条目,然后将其分配给double


如果我没看错的话,如果用户输入的不是浮点值,您想显示一条消息吗?然后,您可以通过记住流可以用作流,还可以记住,例如,输入运算符返回流。所以你可以这样做

double b;char tmpChar;
cout << "Enter the value of b:" <<endl;
cin >>tmpChar;
if ((tmpChar >= 'a' && tmpChar <= 'z') || (tmpChar >='A' && tmpChar <='Z'))
   error();

要清除由非法输入设置的错误位,请使用。

请用您得到的确切错误回答您的问题。我无法编译它,因为它说g++.exe不工作-可能您的g++已损坏?如果您的桌面编译器不工作。暂时试试在线的。
double b;char tmpChar;
cout << "Enter the value of b:" <<endl;
cin >>tmpChar;
if ((tmpChar >= 'a' && tmpChar <= 'z') || (tmpChar >='A' && tmpChar <='Z'))
   error();
if (!(cin >> a))
{
    std::cout << "Error: Illegal input\n";
}