嗨,我是初学者的C++语言,我想知道是否有任何方式编写无限输入的程序。例如:我想写一个计算器程序来添加数字。这很容易,但有一种方法可以让用户可以添加尽可能多的数字,而不需要询问他想要的数字。这样,如果他想添加三个数字,他只需键入“1 + 1 + 1”,或者如果他想添加四个数字,他会在前一行的末尾添加“+1”。与此类似,用户不会被卡住固定数量的输入或不需要询问他需要多少输入。我需要知道哪些C++函数才能做到这一点无限输入的C++计算器
回答
是的。有可能的。您可以使用vector
的int
s。获取用户输入并计算vector
中元素的总和。把它放在循环中,这就是你想要的。
Works,but double工作量。一个循环用于加载矢量,然后用另一个循环来处理矢量。如果您需要存储输入,并考虑操作的顺序,例如@defube对堆栈和队列的建议就更好了。 – user4581301
试试这个:
#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;
}
回避OP请求的一部分*而不被问及他想要多少个数字* – user4581301
您可以使用while循环从标准输入读取。 (标准:: 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;
}
直到它接收到输入“结束”这将读取的数字。
目前为止的最佳代码响应。一个警告:'atof'在遇到坏串时悄然退出。 ['strtod'](http://en.cppreference.com/w/cpp/string/byte/strtof)允许程序通过测试字符串结尾NULL的'end'参数来捕获大多数错误。 – user4581301
@ user4581301确实如此,但由于OP声称他们是初学者,我不想将它们与额外的错误检查代码混淆。初学者通常更容易理解“提供正确的输入”,而不是“验证正确的输入”。 –
同意。一步一步来。获取数据。测试它。获取*正确的*数据。测试它。操作数据。测试它。我只想稍后留下一些面包屑。 – user4581301
对于包含中缀运算符的表达式的解析和评估,很少有东西比Shunting Yard Algorithm简单。
在C++实现,这比与容器库的任何其它语言几乎没有不同(或内置的支持),其提供stack S和queue秒。在这里,您需要使用std::stack
和std::queue
。程序的输入可以是从std::cin
(标准输入或控制台)读取的单行(包含用户输入的表达式)到std::string
。
这将不仅允许任何合理长度的表达式,而且还可以正确处理任意嵌套的带括号的子表达式,评估特殊函数和自定义运算符。
- 1. 无限输入C++计算器结束的计算需要一个更INT
- 2. C++数组(无限输入)
- 3. C++计算器中的整数限制
- 4. 计算输入。
- 5. 如何在不限制输入值的情况下限制输入计算值?
- 6. C中计算器的读取字符串输入
- 7. 使用键盘作为XAML和C#计算器的输入
- 8. 计算器C:输入操作符号和整数来执行计算
- 9. 计算利息无限?
- 10. C++比较无限制输入值
- 11. 在C中获取无限输入?
- 12. C++无限循环与输入
- 13. 在php中输入一个输入的计算器
- 14. jQuery的计算总输入
- 15. 在java连续输入计算器
- 16. 计算器输入是字符串
- 17. 分数计算器输入错误
- 18. 重置计算器输入框为js
- 19. Python计算器 - 输入验证
- 20. 'SImple'2类Java计算器不接受输入或做计算
- 21. 像计算器一样计算内部输入
- 22. 匹配用户输入并通过数字计算输入C++
- 23. angular2计时器进入无限
- 24. 当输入错误输入时无限循环无限循环
- 25. Matlab无法计算无限积分?
- 26. C#GPA计算器
- 27. SSRS:使用输入计算
- 28. 在输入中计算
- 29. 如何计算输入值
- 30. 动态计算输入值
这听起来像你需要循环 – yizzlez
我将如何使用循环来做到这一点? –
要完全解决这个问题,您需要编写一个简单的解析器。您可能需要查看有时用于计算器的Reverse Polish Notation,因为它比标准符号更容易解析。 – mattnewport