无限输入的C ++计算器

时间:2015-07-21 20:12:08

标签: c++

您好我是c ​​++语言的初学者,我想知道是否有任何方式编写无限输入的程序。例如:我想写一个计算器程序只是为了添加数字。这很容易,但是有一种方法可以让用户可以根据需要添加任意数量的数字,而不会被问到他想要多少个数字。这样,如果他想添加三个数字,他只需输入“1 + 1 + 1”,或者如果他想要添加四个数字,他就会在前一行的末尾添加“+1”。就像这样,用户不会坚持固定数量的输入,或者不需要询问他想要多少输入。为了做到这一点,我需要知道c ++中的哪些函数

4 个答案:

答案 0 :(得分:4)

您可以使用while循环从标准输入读取。 (std :: cin)从while循环读取的一些基本代码,并将输入添加到总和中如下:

#include <iostream>
#include <string>
#include <cstdlib>

int main(){
    std::string line = "";
    double sum = 0.0;
    while(line != "end"){
        std::cout<<"The current sum is: "<<sum<<std::endl;
        std::cout<<"Enter the number you would like to add or \"end\" to exit: ";
        std::cin>>line;
        sum += atof(line.c_str());
    }
    std::cout<<"The final sum is: "<<sum<<std::endl;
}

这将读取数字,直到收到输入&#34;结束&#34;。

答案 1 :(得分:2)

对于解析和评估包含中缀运算符的表达式,很少有事情比Shunting Yard Algorithm简单。

在C ++中实现它与使用提供stackqueue的容器库(或内置支持)的任何其他语言几乎没有什么不同。在这里,您要使用libtoolizestd::stack。程序的输入可以是一行(包含用户键入的表达式),从std::queue(标准输入或控制台)读取到std::cin

这不仅允许任何合理长度的表达式,而且还可以正确处理带括号的子表达式的任意嵌套,特殊函数的评估和自定义运算符。

答案 2 :(得分:0)

是。有可能的。您可以使用vector的{​​{1}}。获取用户的输入并计算int中元素的总和。把它放在循环中,这就是你想要的。

答案 3 :(得分:0)

试试这个:

#include <iostream>

int main (int argc, char *argv[])
{
    for (int i = 0; i < argc; i++)
        std::cout << "argument " << i << " is " << argv[i] << std::endl;
    return 0;
}