2009年8月8日 星期六

fgets

fgets

[轉貼]Linux C function()參考手冊

標頭檔:
stdio.h

函數:
char *fgets ( char * str, int num, FILE * stream );

函數說明:
fgets()用來從參數stream所指的文件內讀入字符並存到參數s所指的內存空間,直到出現換行字符、讀到文件尾或是已讀了size-1個字符為止,最後會加上NULL作為字符串結束。

返回值:
fgets()若成功則返回s指針,返回NULL則表示有錯誤發生。

代替scanf():
fgets(buf, sizeof(buf), stdin);

[轉貼]海賊的藏寶處
C-fgets 與 scanf 差別

       scanf fgets
字串以外變數 o    x
一次多組字串 o    x
中間有讀空白    x       o
字串後加 '\n'     x             o
限制輸入長度 x    o
傳回值    欄數  字串/NULL
被建議停用  o    x

注意:
1. fgets 自動加了 '\n' 在最後面!
2. buf[strlen(buf)-1] = '\0'; //這是將fgets所抓到的\n給去掉

[轉貼]Yu-Min Space
C Function - fgetc、fgets讀取整個檔案內容

fgetc:傳回所讀到的字元,傳回值如果是 EOF,可能是有錯誤發生或是檔案終止(end-of-file),所以應該利用 feof 或是 ferror 來判定錯誤發生或是檔案終止。
while((ch=fgetc(fp))!=EOF) 
fputc(ch,stdout);

fgets: 傳回所讀到的字串,傳回值如果是 NULL,可能是有錯誤發生或是檔案終止(end-of-file),所以應該利用 feof 或是 ferror 來判定錯誤發生或是檔案終止。
while(!feof(fp))
if(fgets(str,128,fp)!=NULL)
printf("%s",str);

沒有留言:

張貼留言