內存緩衝區

研究問題:

  1. 內存緩衝區分類??
  2. gets()與scanf()讀入數據的區別??
  3. 避免清除緩衝區數據??

要求:

  • 讀取字符時:
    scanf()以Space、Enter、Tab結束一次輸入,不會捨棄最後的回車符(即回車符會殘留在緩衝區中);
    getchar()以Enter結束輸入,也不會捨棄最後的回車符;
    讀取字符串時:
    scanf()以Space、Enter、Tab結束一次輸入!
    gets()以Enter結束輸入(空格不結束),接受空格,會捨棄最後的回車符!
  • 爲了避免出現上述問題,必須要清空緩衝區的殘留數據,可以用以下的方法解決:
    方法1:C語言裏提供了函數清空緩衝區,只要在讀數據之前先清空緩衝區就沒問題了!
           這個函數是fflush(stdin)。
    方法2:自己取出緩衝區裏的殘留數據。
    scanf(“%[^\n]”,string);
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章