使用参数捕获要注意的问题
lambda表达式放在a、b输入完成之后,否则捕获的值是之前定义好的值
//简单的计算器
#include <iostream>
using namespace std;
auto add = [](int a,int b)->int{return a + b;};
auto cheng = [](int a,int b)->int{return a * b;};
auto chu = [](int a,int b)->double{return (double)a / b;};
int main()
{
while(1){
//1.定义两个数
int a;
int b;
//2.定义加减乘除
char fuhao;
//3.提示
cout << "请输入两个数" << endl;
cin >> a;
cin >> b;
//如果要用参数捕获的方式
//lambda表达式放在a、b输入完成之后
//否则捕获的值是之前定义好的值
auto jian = [a,b]()->int{return a - b;};
cin >> fuhao;
//4.定义switch函数进行计算
//5.输出最后的结果
switch (fuhao){
case '+':
cout << add(a,b) << endl;
break;
//改成jian()
case '-':
cout << jian() << endl;
break;
case '*':
cout << cheng(a,b) << endl;
break;
case '/':
cout << chu(a,b) << endl;
break;
default:
cout << "error" << endl;
}
}
return 0;
}