scanf()的學習記錄

  空白字符(空格,製表符,換行符)函數

一.轉換說明符spa

  1. %c 把輸入解釋成一個字符指針

  2. %e,%f,%g,%a,大寫也行 把輸入解釋成一個浮點數字符串

  3. %i  解釋成一個有符號的十進制變量

  4. %o 有符號的八進制原理

  5. %x 有符號的十六進制file

  6. %p 解釋成一個指針循環

  7. %u 無符號的十進制數im

二.修飾符(詳見C primer plus 第五版 79頁文件

  1. 延後賦值 例子請看C primer plus 第五版 81頁 例題 4.16

 三.scanf()的輸入原理(詳見C primer plus 第五版 79頁)

 1.非格式轉換符要求的非空白字符,scanf()會捨棄,不會賦給任何變量,該捨棄的放回輸入,等下一次scanf()再來讀取 這裏實際上是一個死循環了,在之後有無限個scanf()的前提下,由於在超過格式轉換符要求的格式後,回車鍵會結束scanf(),開始執行之後的語句

 2.scanf()在帶有多個格式轉換符中,ANSI 規定在第一個出錯的地方中止讀取輸入

 3.而使用%s說明符,空白字符之外的全部字符均可以接受,因此是跳過空白字符,讀取非空白字符後,保存再次遇到空白字符以前的內容

 4.%c 則所用字符都平等

 5.scanf()函數容許把普通字符放在格式字符串中,出了空格(無論多少個空格,換行符在輸入時都是能夠的,就算沒有空格也能夠)之外的普通字符,必定要與輸入字符串匹配。例子 80頁

 6.scanf()也有返回值判斷 81頁沒有成功讀取,返回一個負數,讀取到文件結尾(end of file )返回EOF

相關文章
相關標籤/搜索