您好我是c ++语言的初学者,我想知道是否有任何方式编写无限输入的程序。例如:我想写一个计算器程序只是为了添加数字。这很容易,但是有一种方法可以让用户可以根据需要添加任意数量的数字,而不会被问到他想要多少个数字。这样,如果他想添加三个数字,他只需输入“1 + 1 + 1”,或者如果他想要添加四个数字,他就会在前一行的末尾添加“+1”。就像这样,用户不会坚持固定数量的输入,或者不需要询问他想要多少输入。为了做到这一点,我需要知道c ++中的哪些函数
答案 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 ++中实现它与使用提供stack和queue的容器库(或内置支持)的任何其他语言几乎没有什么不同。在这里,您要使用libtoolize
和std::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;
}