我們可以撰寫一個 scanf 函式來決議 # 符號上的輸入并讀取兩個數字嗎?
因為 # 不是以標準方式使用的,所以我有點困惑
uj5u.com熱心網友回復:
scanf 模式"%d#%d"匹配,按順序:
- 可選空格
- 一個整數
- 人物
# - 更多可選空格
- 另一個整數 如果找到兩個整數,則回傳 2。
如果第一個整數和 之間有任何內容(甚至是空格字符)#,掃描將在第一個整數之后停止并回傳 1。如果后面的任何內容#不是可能前面有空格的整數,它也會停止并回傳 1 。這種不精確性是經常不鼓勵使用 scanf 的原因之一。
您可以#通過在模式中添加空格來允許空格:"%d #%d"。但是空格包括換行符,這可能導致意外行為。這是 scanf 經常不受歡迎的另一個原因。
總之:
- 是的,您可以讓 scanf 讀取由 . 分隔的兩個數字組成的行
#。沒問題;scanf 沒有“合法分隔符”的概念。 - 如果輸入來自容易出錯的來源,例如人類打字員,scanf 將難以生成良好的錯誤訊息,這可能是一種令人沮喪的體驗。但是如果你知道輸入沒有錯誤,scanf 就可以正常作業。
在上述模式中,如果要接受浮點數,請將其更改%d為%lf(對于雙精度,通常推薦)或%ffir 浮點數。
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/419832.html
標籤:
上一篇:決議換行符終止的編程語言
