C++;输入不限的计算器 我是C++语言初学者,我想知道是否有任何方法来编写一个无限输入的程序。例如:我想写一个计算器程序只是为了添加数字。这很简单,但是有没有一种方法可以让用户添加任意数量的数字,而不必询问他想要多少数字。这样,如果他想添加三个数字,他只需键入“1+1+1”,或者如果他想添加四个数字,他会在前一行的末尾添加“+1”。这样,用户就不会被固定数量的输入所束缚,或者不需要询问他需要多少输入。为了做这个,我需要知道C++中的哪些函数
是。这是可能的。您可以使用C++;输入不限的计算器 我是C++语言初学者,我想知道是否有任何方法来编写一个无限输入的程序。例如:我想写一个计算器程序只是为了添加数字。这很简单,但是有没有一种方法可以让用户添加任意数量的数字,而不必询问他想要多少数字。这样,如果他想添加三个数字,他只需键入“1+1+1”,或者如果他想添加四个数字,他会在前一行的末尾添加“+1”。这样,用户就不会被固定数量的输入所束缚,或者不需要询问他需要多少输入。为了做这个,我需要知道C++中的哪些函数,c++,C++,是。这是可能的。您可以使用ints的vector。从向量中获取用户输入并计算元素之和。把这个放在循环中,这就是你想要的。试试这个: #include <iostream> int main (int argc, char *argv[]) { for (int i = 0; i < argc; i++) std::cout << "argument " << i << " is " << argv[i]
int
s的vector
。从向量中获取用户输入并计算元素之和。把这个放在循环中,这就是你想要的。试试这个:
#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;
}
#包括
int main(int argc,char*argv[])
{
对于(int i=0;i std::cout您可以使用while循环读取标准输入。(std::cin)从while循环读取一些基本代码,并将输入添加到sum中,如下所示:
#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;
}
#包括
#包括
#包括
int main(){
std::string line=“”;
双和=0.0;
while(行!=“结束”){
std::cout对于包含中缀运算符的表达式的解析和求值,没有什么比
在C++中实现这一点与任何提供容器和(或内置支持)的语言都没有什么区别,它提供了S和S。在这里,您将希望使用<代码> STD::Stuts和。对程序的输入可以是一行(包含用户键入的表达式),从<代码> STD::CIN < /代码>中读取。(标准输入或控制台)输入到std::string
这不仅允许表达式具有任何合理的长度,而且还可以正确处理括号子表达式的任意嵌套、特殊函数的求值和自定义运算符。听起来您需要loopsHow我会使用循环来完成此操作吗?要完全解决此问题,您需要编写一个简单的解析器。您可能希望看起来是into反向波兰语符号,有时用于计算器,因为它比标准符号更容易解析。如果你只想支持+和-或*和/你只需要使用循环,因为你只需要从左边计算。但是,如果你想使用这四种符号的任意组合,你需要解析你的表达式。我建议你学习g如何使用Lex/Yacc或(Flex/Bison)对于更复杂的表达式。有一个简单的Lex/Yacc calculatorBest代码响应的示例代码。有一个警告:atof
在遇到错误字符串时会自动退出。允许程序通过测试字符串结尾为NULL的end
参数来捕获大多数错误。@user4581301非常正确,但正如OP所述他们是初学者,我不想把他们和额外的错误检查代码混淆。对于初学者来说,理解“提供正确的输入”比理解“验证正确的输入”更容易.同意。一步一个脚印。输入数据。测试数据。输入正确的数据。测试数据。操作数据。测试数据。我只是想留下一些碎屑供以后使用。@user4581301说得很好,我完全同意。谢谢你的批评。避开OP请求的一部分*而不被问及他想要多少数字*工作正常,但工作量增加了一倍。一个loop加载向量,然后另一个循环处理向量。如果需要存储输入,例如考虑操作顺序,@defube对堆栈和队列的建议更好。