gpt4 book ai didi

c - 读取一个运算符和一个带小数点的数字作为 char 然后使用它? (在 C 中)

转载 作者:太空宇宙 更新时间:2023-11-04 03:55:57 24 4
gpt4 key购买 nike

这是我的问题:我必须阅读两种短语中的一种+x或 *x然后我必须使用我刚刚阅读的那个操作。比如,假设我计算了一些平均数,然后我读到 +3所以平均值现在是原来的+3与 * 功能相同我设法完成了加号部分,这是我的非常丑陋(但有效)的代码:

char c=0;
char tempchar=0;
char sign=0;
printf("enter a character\n");
while (c!= '\n' && c!=EOF)
{
tempchar=c;
c = getchar();
if (c=='+' || c=='*')
sign = c;
if (c=='\n' || c==EOF)
{
c=tempchar;
break;
}
}
if (sign == '+')
avg = avg + (c-'0');

所以,+ one 起作用了。但是对于 * 选项,我只得到我输入的最后一个字符(例如,如果我输入 *1.2 我会得到 * 和 2)所以......我怎样才能得到 * 和整数?

谢谢!

最佳答案

因为你想支持 float ,使avg一个float , 用 fgets 获取输入字符串, 并用 sscanf 解析它:

#import <stdio.h>
#define MAXBUFFER 64

//...

float value;
char input[MAXBUFFER];

fgets(input, sizeof(input), stdin);

if (sscanf(input, "+ %f", &value) == 1) avg += value;
if (sscanf(input, "* %f", &value) == 1) avg *= value;

//...

关于c - 读取一个运算符和一个带小数点的数字作为 char 然后使用它? (在 C 中),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16452101/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com