scanf控制使用者輸入資料的合法範圍 演算法 c語言

2022-05-04 06:30:10 字數 572 閱讀 3520

如題:

要求用a,b,c三個正整型變數來儲存使用者戶輸入3個值。

看程式實現:

#include int

main()

; printf(

"%d %d %d\n

", a, b, c);

return0;

}

scanf函式返回值為int型。如果a和b都被成功讀入,那麼scanf的返回值就是2;

如果只有a被成功讀入,返回值為1;

如果a和b都未被成功讀入,返回值為0;

如果遇到錯誤或遇到end of file,返回值為eof。end of file為ctrl+z 或者ctrl+d

靈活運用scanf的返回值可以使用使用者輸入的資料更有效,不會因為輸入時出現錯誤而導致整個程式不能執行。

使用while迴圈獲取使用者輸入,當不符合條件時,再次獲取資料。直到使用者輸入的資料有效再停止,

在迴圈讀取中,使用 fflush(stdin)重新整理標準輸入緩衝區,把輸入緩衝區裡的東西丟棄

注:乙個好的演算法設計要保證程式的魯棒性強,有時能在資料有瑕疵的情況下仍能給出正確結果。

Scanf的輸入型別

scanf的輸入型別 1.格式字元與printf函式中的使用方式相同,以 d o x c s f e,無 u格式 g格式。2.可以指定輸入資料所佔列寬,系統自動按它擷取所需資料。3.後的 附加說明符,用來表示跳過它相應的資料。4.輸入資料時不能規定精度。5.根據格式字元的含義從輸入流中取得資料,當輸...

scanf函式的輸入

是不是也有人和我一樣,有時候輸入達不到自己預想結果呢?又很難找到自己的錯誤,覺得輸入的格式是對的,但是儲存卻不再在自己預想的位置。下面來講一下我關於字元和數字輸入的順序和方式的認識。首先我們來看第乙個 include includevoid main 是不是感覺是乙個非常簡單的程式。但有時候不懂也是...

Scanf函式的輸入問題

scanf 怎樣讀取輸入?scanf 開始讀取輸入以後,會在遇到的第乙個空白字元空格 blank 製表符 tab 或者換行符 newline 處停止讀取。假定使用了乙個 d說明符來讀取乙個整數。scanf 函式開始每次讀取乙個輸入字元,它跳過空白字元 空格 製表符和換行符 直到遇到乙個非空白字元。因...