【发布时间】:2014-02-11 07:26:16
【问题描述】:
第一次发帖,请轻点。我已经开始自学 C++,因为我一直很感兴趣,而且它对以后的工作也很有用。
好的,所以我编写了一个非常基本的程序,可以根据用户输入进行加、减、乘或除。
我的问题是我可以使用来自用户的输入作为字符串并使用它来调用函数吗?
见下面的代码:-
#include <iostream>
#include <string>
using namespace std;
// Addition Function
int Add (int a, int b)
{
int r; //Result
r=a+b; //formula
return r; //return result of formula
}
// Subtraction Function
int Subtract (int a, int b)
{
int r; //Result
r=a-b; //formula
return r; //return result of formula
}
// Multiply Function
int Multiply (int a, int b)
{
int r; //Result
r=a*b; //formula
return r; //return result of formula
}
// Divide Function
int Divide (int a, int b)
{
int r; //Result
r=a/b; //formula
return r; //return result of formula
}
// Main
int main()
{
int ip1, ip2, z;
string option;
cout << "Enter first number: ";
cin >> ip1;
cout << "Enter second number: ";
cin >> ip2;
cout << "What would you like to do?, Please type an option (Options: Add, Subtract, Multiply, Divide)\n";
getline(cin,option);
z = option (ip1,ip2);
cout << "The result is " << z;
}
所以我要求用户输入一个选项,即添加,然后程序获取该字符串(添加)并使用它来调用添加函数。
目前我在编译时遇到“不匹配调用”(std::string {aka std::basic_string}) (int&, int&) 错误
任何帮助将不胜感激
谢谢 刘易斯
【问题讨论】:
-
你可以有
std::map<std::string, std::function<int(int,int)>>然后就做z = myMap[option](ip1, ip2);