我必須解決一個初看起來對我來說很簡單的練習。但是,我不太確定如何解決它。鑑於變量a
和b
具有某些可接受的值,我應該在閱讀它們後確認它們是否在正確的範圍內?關於變量b
,在示例中它是以科學記數法給出的,所以我應該使用e
說明符來讀取它?最後但並非最不重要的是,',
'的分配抑制使用"%*[,]"
?必須符合角蛋白規格的掃描讀數變量
寫一組語句從標準輸入讀取三個變量
a
,b
和c
,其中的變量有以下幾種類型:
a
- 無符號短整型,b
- 浮,c
- 字符串最多31個字符輸入值由一個逗號分隔。第一個變量是八進制數字。對於a和b的容許值如下:如果值不在允許範圍內,或者在錯誤的格式
-4331 < a <= 28731 -1035 < b < 9749273
合適的錯誤消息應給予。樣品輸入:
12745, -1.e-3, Is this a good one? 0xEE04F, 21e75, Maybe this one... 70073, 21e+6, Or this one. Could this string be too long to put into allocated area?
除非您真正閱讀它們,否則實際上沒有辦法驗證值。您可以通過檢查來自'scanf'的返回值來驗證'scanf'的輸入是否正確。 –
如果您有權訪問Linux框,則'scanf'的手冊頁非常全面。 (如果你不這樣做,你應該可以通過Google搜索快速找到它。)您還需要了解'scanf'和您在調用'scanf'後需要寫入的代碼之間的分工以驗證您的輸入。 –