【发布时间】:2019-07-28 09:24:01
【问题描述】:
我正在编写一个 c++ 计算器,但我一直卡在将 std::string 更改为浮点变量以进行数学计算的部分。
我已经尝试过 atoi 并使用 'var'(单引号),但它似乎会导致不规则的大数字,并且代码的某些变体甚至无法编译,说“第 13 行第 18 列 C:\Users\ User\Desktop\calculator.cpp [错误] 在初始化时无法将 'std::string {aka std::basic_string}' 转换为 'float'。
#include <stdio.h>
#include <math.h>
#include <iostream>
#include <string>
#include <stdlib.h>
int main()
{
std::cout << "Input arithmetic calculation: \n";
std::string calc;
std::cin >> calc;
atoi( calc.c_str() );
float result=calc;
std::cout << "Result = ";
std::cout << result << '\n';
}
我希望计算输出,例如 10*9=90 但它最终成为 10*9 或(当在 float result=calc 中添加单引号时) 1.93708e+009.
【问题讨论】:
-
以上代码将无法编译。您不能将
std::string分配给float,如float result=calc;。您还丢弃了atoi()的返回值。 -
atoi不是您正在寻找的评估函数,它只是将数字字符串转换为整数。例如将"12"转换为12。 -
@kornkaobat This post 可以帮助你。
-
好的,我找到了解决我的问题的 tinyexpr.h 头文件。