C++矢量计算器
C++ Vector Calculator
所以我决定接受挑战,用向量制作一个"无限"计算器我的计算器的目标是获得用户输入,并添加/sub/mult/div他输入的所有变量,而不是像大多数简单计算器那样只添加2个变量。我完成了大部分代码,除了它要求用户输入的部分。我不仅想把两个变量加在一起得到结果,我还想得到用户输入的变量数量,然后进行必要的数学运算得到结果。
我需要帮助的地方是user_input()函数。我写这行是为了让你知道我想要什么:
std::cin >> v.push_back(user_value) >> user_symbol >> v.push_back(user_value);
但是,正如您所看到的,编译器会抛出错误。
error: no match for 'operator>>' in 'std::cin >> v.std::vector<_Tp, _Alloc>::push_back<int, std::allocator<int> >((*(const value_type*)(& user_value)))'|
此外,我知道这不是从用户那里获得2个以上值的正确方法,因为我只获得2个值,但我希望我的程序接收2个以上的值。。
p.S.对C++来说还是相当陌生的,如果你有任何技巧想分享,请随意:)
以下是完整的源代码:
// main.cpp
// calculator using vectors
#include <iostream>
#include <vector>
#include <stdexcept>
typedef std::vector<int>::size_type vc_size;
int add(std::vector<int> v_add);
int sub(std::vector<int> v_sub);
int mult(std::vector<int> v_mult);
int div(std::vector<int> v_div);
void p_info();
void user_info();
int main(){
return 0;
}
int add(std::vector<int> v_add){
vc_size vector_size = v_add.size();
int add_result = v_add[0];
for(int i = 1; i < vector_size; i++){
add_result += v_add[i];
}
return add_result;
}
int sub(std::vector<int> v_sub){
vc_size vector_size = v_sub.size();
int sub_result = v_sub[0];
for(int i = 1; i < vector_size; i++){
sub_result -= v_sub[i];
}
return sub_result;
}
int mult(std::vector<int> v_mult){
vc_size vector_size = v_mult.size();
int mult_result = v_mult[0];
for(int i = 1; i < vector_size; i++){
mult_result *= v_mult[i];
}
return mult_result;
}
int div(std::vector<int> v_div){
vc_size vector_size = v_div.size();
int div_result = v_div[0];
for(int i = 1; i < vector_size; i++){
div_result /= v_div[i];
}
return div_result;
}
void p_info(){
std::cout << "Vector calculating program" << std::endl;
std::cout << "Calculate: ";
}
void user_info(){
char user_symbol;
int user_value;
std::vector<int> v;
std::cin >> v.push_back(user_value) >> user_symbol >> v.push_back(user_value);
switch(user_symbol){
case '+':
std::cout << add(v);
break;
case '-':
std::cout << sub(v);
break;
case '*':
std::cout << mult(v);
break;
case '/':
std::cout << div(v);
break;
default:
throw std::runtime_error("Error");
}
}
std::cin >> v.push_back(user_value)
你不能这样做。
你必须这样做,而不是
std::cin >> user_value;
v.push_back(user_value)
我想获得用户输入的尽可能多的变量,然后进行必要的数学运算以获得结果。
您希望用户如何发出停止信号?你可以通过一个循环很容易地实现这一点:
while(true) {
std::cin >> user_value1 >> user_symbol >> user_value2;
v.push_back(user_value1);
v.push_back(user_value2);
stop_condition...
//rest of code
}
相关文章:
- 使用 BMI 计算器对C++中的数字进行四舍五入的问题
- 我在c ++矩阵计算器程序中找不到错误
- C++计算器,不能单独除以 0
- 如何正确解析子字符串,以便它们对我的新手计算器有效?
- Arduino 基础 2 计算器无法C++工作
- 需要有关我的平均计算器代码的建议
- C++ - 在我尝试制作一个简单的计算器时有一个"uninitialized local variable y used"警告
- 野牛/flex:计算器将双精度值解释为整数,所以我添加了 YYSTYPE 双精度 #define 但我有多个编译错误
- C++计算器运算符
- 使用WIN32 API的击球平均计算器
- RPN计算器c++错误处理和多个运算符
- C++查找用于构建单行计算器
- 如何修复这个基本计算器
- 用于加法和减法的十六进制计算器
- 桌面计算器出现问题.C++程序设计语言
- 如何对堆栈中的所有项目求和?Postfix计算器
- RPN计算器使用头文件进行计算操作和堆栈;用于堆栈的矢量
- 如何在我的基本计算器中循环遍历数组
- 如果 GPA 计算器的语句问题
- 我的C++计算器似乎出了什么问题?