将char转换为c中的float

走私者

我需要将char转换为float。我知道我们可以借助atof()函数来做到这一点。但是我不想创建另一个变量来保存浮点数。我希望转换后的浮点数进入相同的变量。像这样

操作数= atof(操作数)

这里的操作数是char类型的。我也尝试过这样的铸造

(float)operand = atof(operand)

但没有用。

这是完整的代码:

#include <stdio.h>
#include <stdlib.h>

void main() {
    float operand = 0.0F ;
    char operator = '0' ;
    printf("\nFollowing operators are supported : + - * / S E\n") ;
    float acc = 0.0F ;
    while((operand = getchar()) !=0 && getchar()==' ' && (operator = getchar()) != 'E') {
            (float)operand = atof(operand) ;
            switch (operator) {
                    case '+' : printf("\nAdd %f to Accumulator.\tResult : %f\n", operand , operand + acc);
                               acc+= operand ;
                    break ;
                    case '-' : printf("\nSub %f from Accumulator.\tResult : %f\n", operand, acc - operand);
                               acc-= operand ;
                    break ;
                    case '*' : printf("\nMultiply Accumulator with %f.\t Result : %f\n", operand, operand * acc);
                               acc = acc * operand ;
                    break ;
                    case '/' : printf("\nDivide Accumulator by %f.\tResult : %f\n", operand, acc / operand);
                               acc = acc / operand ;
                    break ;
                    case 'S' : printf("\nSet Accumulator to %f\n",operand) ;
                               acc = operand ;
                    break ;
                    default : printf("\nInvalid syntax\n") ;
            }
    }

}

欢迎任何帮助。

达马克

尽管它与“将字符转换为浮点数”不同,但从您问题中的各种提示来看,我认为您真正想要的是:

operand = operand - '0';

这会将(通常)ASCII值operand转换为它表示的值,范围是0-9。

通常,getchar返回所键入字符的字符代码。因此,例如,数字“ 0”的ASCII码为48(“ 1”的ASCII码为49,依此类推)。如果用户键入“ 0”,getchar则将返回48,这是数字0的字符代码。现在,如果减去“ 0”(即48),则得到0。这适用于数字0到9(即'1'-'0'= 1,'2'-'0'= 2,依此类推)。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何使用 C++ 中的 write 函数将 float 转换为 char 以写入文件?

来自分类Dev

从D中的float转换为const(char)*

来自分类Dev

将C ++ const char *转换为char *

来自分类Dev

C将const char *转换为char

来自分类Dev

将字符串转换为C ++中的float

来自分类Dev

将float转换为int在C中无法正常工作

来自分类Dev

将时间char数组转换为C中的整数

来自分类Dev

将C中的char从big endian转换为little endian

来自分类Dev

在C ++ 11中将std :: string转换为char *

来自分类Dev

将时间char数组转换为C中的整数

来自分类Dev

将char转换为ASCII并在C#中显示?

来自分类Dev

将FLOAT转换为SQL中的DATE?

来自分类Dev

将float *或其他指针转换为unsigned char *

来自分类Dev

C#将枚举转换为char

来自分类Dev

将C char数组转换为String

来自分类Dev

C ++:将char *转换为wstring

来自分类Dev

将vector <string>转换为char ** C ++

来自分类Dev

将char *转换为int * C ++

来自分类Dev

将void函数转换为char * C ++

来自分类Dev

将int转换为char C公式

来自分类Dev

将Go [] byte转换为C * char

来自分类Dev

将char **转换为int C ++

来自分类Dev

将void函数转换为char * C ++

来自分类Dev

将int转换为Char c#?

来自分类Dev

将char [] []转换为char **

来自分类Dev

在gnuradio中从Float转换为Char时出错

来自分类Dev

在C ++中从int *转换为char *

来自分类Dev

将字符串中的char文字转换为char

来自分类Dev

通过c样式转换将char *转换为QString