gpt4 book ai didi

c - C中的计算器程序

转载 作者:太空狗 更新时间:2023-10-29 16:01:55 26 4
gpt4 key购买 nike

我正在尝试用 C 编写一个计算器程序。

输入必须完全采用这种形式:

a oper b

其中 a、b 是 double 类型的数字,oper 是这些字符 +、-、*、/。

代码:

int main()
{
char oper;
double a, b;

printf("What do you want to calculate?\n");
if (scanf("%lf %1[-+/*] %lf", &a, &oper, &b) != 3)
printf("Error. Invalid input.\n");
else {

switch(oper)
{
case '+':
printf("%f+%f=%.2f",a,b,a+b);
break;
case '-':
printf("%f-%f=%.2f",a,b,a-b);
break;
case '*':
printf("%f*%f=%.2f",a,b,a*b);
break;
case '/':
if(b != 0)
{
printf("%f/%f=%.2f",a,b,a/b);
break;
}
else
{
printf("Error! You can not divide by 0.");
break;
}
default:
printf("Error! Invalid operator.");
break;
}}
return 0;
}

问题:

当用户输入例如这个输入时:

123

程序将卡住。

同时,当用户输入例如这些输入时:

123 5
123 ab
Hello

我们的程序会打印

ERROR. Invalid input.

我真的需要你的帮助。你能不能修改我的代码,这样如果我们输入这个输入,例如:

123

我们的程序会打印

ERROR. Invalid input.

萨克斯

最佳答案

fgets 开始:

char buffer[256];
printf("What do you want to calculate?\n");
fgets(buffer, 256, stdin);
if (sscanf(buffer, "%lf %1[-+/*] %lf", &a, &oper, &b) != 3)
printf("Error. Invalid input.\n");
// .. rest of the code

关于c - C中的计算器程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20079250/

26 4 0
文章推荐: javascript - onclick 属性与 eventListeners
文章推荐: android - 在android中生成设计师二维码
文章推荐: javascript - 一个真正的循环
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com