2013-09-30 36 views
0

我在開始C++類,現在我們正在檢查函數。對於任務我必須寫兩個函數。應該有三個int參數表示一個時間(幾小時,幾分鐘,幾秒),並以秒爲單位返回相應的時間。第二個函數應該採用一個int參數(秒),並以小時,分鐘,秒格式返回等價時間。多用戶輸入選擇C++

我想知道是否有辦法讓用戶選擇輸入多少個參數。例如,是否有一種方法可以提示「輸入時間,以秒或小時,分鐘,秒的形式顯示:」,如果用戶只輸入一個輸入呼叫一個功能,但如果他們輸入三個呼叫另一個功能?

我意識到我可以先給用戶一個選擇,比如「輸入'1'從秒轉換到小時,分鐘,秒,輸入'2'從小時,分鐘,秒轉換爲秒。然後運行一個單獨的cin語句,具體取決於他們選擇的內容,但是有沒有一種方法可以在沒有用戶額外輸入的情況下執行?

+1

是的,它可以完成,但它涉及解析,這需要先進的工具(如'stringstream')或仔細的字符串切分。你爲了這個嗎? – Beta

+0

@Beta推測他(s)他已經必須這樣做三個參數的功能。 – cdhowie

回答

1

是的,你可以很容易地做到這一點。提示用戶輸入。使用std::getline將它們的整個輸入作爲字符串讀取。檢查該字符串是否只包含數字(所以它是一個輸入)或者有空格或逗號之類的東西(表示它不止一個輸入)。

轉換相應數量的輸入,並調用所選功能。

0

有。簡單的方法是嘗試以兩種不同的格式解析字符串。如果一個失敗,請嘗試另一個。成功的格式表示應該調用哪個函數。

如果您給出了每個函數的可接受輸入示例,或許我可以提供一個具體示例。