你好再次Stackoverflow,我在這裏再次問我的C++編程類的問題。我面臨的問題主要是由於使用鍵盤輸入的用戶輸入。我需要能夠接受用戶輸入來決定調用哪個函數以及給出函數的參數。例如,像add 5
這樣的東西可以用參數5調用add函數。起初我試着重載>>操作符來同時使用一個字符串和一個int,但是我遇到的問題是程序無法在沒有int的情況下進行輸入因爲deletemax
所以我不得不拋出這個想法。所以,現在我回來了,以令牌化的輸入,但我們不允許使用升壓這個項目,所以我有什麼事了這樣的使用sstream標記字符串以存儲值的好方法?或替代用戶輸入
bool out = false;
string token;
string In;
int num;
do
{
cout << "heap> ";
cin >> In;
istringstream iss(In);
while(getline(iss, token, ' '))
{
cout << token << endl; //I know this is incorrect but just not what to replace it with
}
out = ProcessCommand (token, num); //Takes string and int to call correct functions
} while (out != true);
的問題在於,我不是很清楚如何正確標記字符串,以便我可以得到2個字符串並將第二個字符串轉換爲int。任何人都可以提供一些幫助嗎?我將不勝感激。此外,如果有更好的方法可以解決這個問題,我也想聽聽。
感謝您給我的任何幫助。
簡單的解決方法是使用[boost tokenizer](http://www.boost.org/doc/libs/1_49_0/libs/tokenizer/index.html),但也許會失敗的目的分配。 – juanchopanza 2012-04-25 18:30:08