未格式化的行I/O————fputs()與puts(),fgets()與gets()

fgets()原型  char *fgets(char *buff,int buff_size,FILE *stream);

gets()原型  char *gets(char * buff);

fputs()原型  char *fputs(char *buff,int buff_size,FILE *stream);

puts()原型  char *puts(char * buff);

fgets從指定的stream讀取字符並把他複製到buffer中,停止讀取的條件:(1) 讀取到一個換行符'\n'將其存入buff中就停止讀取;(2)buff中的存儲的數據達到buff_size-1時,停止讀取;停止讀取後在數據末尾加一個NUL字節形成字符串。

gets對於fgets而言是向下兼容的,區別在於gets讀入一行後並不在緩衝區存儲結尾的換行符;同時gets並沒有緩衝區的長度,如果一個長輸入行超過緩存區的大小將會導致內存溢出;

fputs傳遞給緩衝區必須包含一個字符串,它的字符被寫入流中,這個字符串以NUL結尾,所以該函數並沒有緩衝區的長度。fputs如實輸出字符串的內容,沒有任何增減;

puts寫入一個字符串時,會在字符串後自動補一個換行符'\n'輸出。

 

 

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