【发布时间】:2020-01-31 11:52:07
【问题描述】:
我试图将用户输入执行限制为仅数字,当他们输入 a / b 而不是 8 / 2 时,结果为零,但我想在他们尝试输入这样的内容时给他们一个警告。
当我执行我的代码时,我收到错误,无法在分配中将char** 转换为double。我为转换实现的字符是numvalidation,用于验证用户输入仅为第一个值,如果输入是数字则接受否则返回默认消息。
#include <iostream>
using namespace std;
int main()
{
char * numvalidation;
double var1, var2;
beginning:
cout << "Enter the First value: ";
cin >> var1;
cout << "Enter the second value: ";
cin >> var2;
if (var1 != '\0')
{
var1 = (&numvalidation);
if (*numvalidation != '\0')
{
cout << "First Value was not a number,Try again with a correct value." << endl;
}
{
cout << "Do you want to continue using the Calculator? (Y/N)" << endl;
char restart;
cin >> restart;
if (restart == 'y' || restart == 'Y')
goto beginning;
}
}
cout << "What do you want to do?" << endl;
cout << "+ :Addition is available" <<endl;
cout << "- :Subtraction is available" <<endl;
cout << "* :Multiplication is available" <<endl;
cout << "/ :Division is available" <<endl;
cout << "Please chose one of the option below" <<endl;
char decision;
cout << "Decision: ";
cin >> decision;
system ("cls");
switch (decision)
{
case '+':
cout << var1 << " + " << var2 << " = " << "" << ( var1 + var2 ) <<endl;
break;
case '-':
cout << var1 << " - " << var2 << " = " << "" << ( var1 - var2 ) <<endl;
break;
case '*':
cout << var1 << " * " << var2 << " = " << "" << ( var1 * var2 ) <<endl;
break;
case '/':
if (var2 == !0)
cout << var1 << " / " << var2 << " = " << "" << ( var1 / var2 ) <<endl;
else
cout << "The value you have entered is invalid because you cannot divide any number by zero " <<endl;
break;
default:
cout << "You have not entered the correct data";
}
{
cout << "Do you want to continue using the Calculator? (Y/N)" << endl;
char decision2;
cin >> decision2;
if (decision2 == 'y' || decision2 == 'Y')
goto beginning;
}
}
【问题讨论】:
-
这看起来像家庭作业。我建议您回到更简单的问题并更好地理解基础知识。从您在此处发布的代码来看,目前这个特定的任务太高级了。您需要更好地了解每一行代码的实际情况。
-
char * numvalidation这是指针,即long,只需将其更改为char numvalidation[256] = {'\0'}; -
(var1 != '\0')始终是true -
@odyss-jii 哦,那我以后一定要去这一步了。
标签: c++