2016-04-15 50 views
-3

我想寫一類POLY像斧頭^ A + BX^B + CX^C方程... 我想兩個輸入的構造是這樣的:如何讀取一個字符串?

POLY(int input_degree,string input_factor); 

input_degree包含「A 「如上所述,並且input_factor包含這樣的因素:」12 3 -2「。 我想寫一些代碼,其中每個字符讀取input_factor,當有一個空間時,它節省了第一個因子(如「A」),並用於下一個因子。 但我不知道一個字符串是如何被計算機讀取的(或者我必須知道嗎?)。

+0

例如使用'std :: string operator []'。但你應該讀這可能:http://www.cplusplus.com/reference/string/string/ – Pierre

+0

* Rajai大學*在哪裏? –

+0

你在說什麼大學@EdHeal?在問題的任何地方我都沒有看到它。 –

回答

0

讀取字符串並從中提取信息爲某種結構的過程稱爲解析。有很多方法可以做到這一點,哪種方式是合適的,取決於你想要做什麼,它需要多快運行,有多少內存可用以及其他各種東西。

您可以編寫一個簡單的循環,遍歷每個字符並根據一些存儲當前狀態的變量決定要執行的操作 - 因此您可能會有一個標誌,表示您處於數字中間,您會看到另一個所以您將該數字添加到正在收集當前數字的數字的另一個變量。當前數字完成時(也許你會發現一個空格字符),你可以使用累加器變量中的內容並使用標準庫將其解析爲數字。

或者您可以更充分地使用標準庫功能。舉個例子,你會發現std::istringstream可以開箱即用,只要告訴它從中抽取int s直到流的結尾。我建議尋找一個好的C++輸入流教程 - 任何適用於使用std::cin從標準輸入讀取的內容都將是相關的,就像std::istringstreamcin是一個輸入流,因此具有相同的接口。

或者你可以使用一個完整的解析庫,如boost::spirit - 對你的場景來說總是過度使用,但是如果你需要像解析結構化配置文件或整個編程語言那樣做,那種工具是非常非常有用。

+0

tanq馬修爲您的各種意見 –

相關問題