嗨,我是初學者的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. C++計算器中的整數限制
- 6. 計算輸入。
- 7. 如何在不限制輸入值的情況下限制輸入計算值?
- 8. 計算器Case'5'無限選項
- 9. 的Javascript文本輸入計算器
- 10. JQuery的計算器:計算輸入,清除後
- 11. C#計算程序 - 輸入文本框
- 12. JQuery輸入計算
- 13. 使用鍵盤作爲XAML和C#計算器的輸入
- 14. C中計算器的讀取字符串輸入
- 15. 計算器C:輸入操作符號和整數來執行計算
- 16. 計劃是進入無限循環C++
- 17. C++上限值計算
- 18. 計算利息無限?
- 19. C++比較無限制輸入值
- 20. C++無限循環與輸入
- 21. 在C中獲取無限輸入?
- 22. 在php中輸入一個輸入的計算器
- 23. 計算用戶的輸入
- 24. jQuery的計算總輸入
- 25. 初始輸入後計算器凍結
- 26. Java計算器崩潰輸入括號
- 27. 計算器解析用戶輸入
- 28. 重置計算器輸入框爲js
- 29. 在java連續輸入計算器
- 30. java計算器(重新輸入值)
這聽起來像你需要循環 – yizzlez
我將如何使用循環來做到這一點? –
要完全解決這個問題,您需要編寫一個簡單的解析器。您可能需要查看有時用於計算器的Reverse Polish Notation,因爲它比標準符號更容易解析。 – mattnewport