fgets函數使用時應該注意的問題

一、原型是char *fgets(char *s, int n, FILE *stream);  作用是從流中讀取n-1個字符,除非讀完一行,參數s是來接收字符串,如果成功則返回s的指針,否則返回NULL。  

  形參註釋:*s結果數據的首地址;n-1:一次讀入數據塊的長度,其默認值爲1k,即1024;stream是文件指針
  例:如果一個文件的當前位置的文本如下
  Love ,I Have
  但是,如果用 
  fgets(str1,4,file1);
  則執行後str1="Lov",讀取了4-1=3個字符,
  而如果用 
  fgets(str1,23,file1);

  則執行str1="Love ,I Have",讀取了一行(包括行尾的'\n',並自動加上字符串結束符'\0')。

 

二、fgets函數使用指針需要分配內存,或者使用數組。

 

三、用fgets(str,3,stdin)從屏幕讀取數據時,比如屏幕輸入:MSG 回車

第二次調用fgets(str,3,stdin)時,沒有提示要輸入數據了,原因很簡單:回車以作爲第二次調用結果輸入進去,這樣下次程序肯定出問題了。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章