c實現getline函式

2021-08-27 20:26:53 字數 837 閱讀 5975

getline函式可以獲取檔案中的一行資料。

原函式形式為 

ssize_t getline(char **linepter,size_t *n,file *stream)

返回型別ssize_t為有符號整形,其值為獲取的字元數,檔案結束則返回-1,包括換行符』\n』,但不包括字串結束符』\0』。

linepter用來儲存獲得的字串,size_t為無符號整形表示linepter的位元組數。當*linepter為空時函式則動態為其分配

空間,注意要將size_t值賦0。當linepter的空間不足時,函式會通過realloc,重新分配更大的空間。stream為檔案指

針,用於讀取檔案。

在了解了系統的getline函式後,根據其功能自己進行了實現。

ssize_t mygetline(char** line,size_t *n,file *fp)

//buf為或n為0時動態為期分配空間

while((c=fgetc(fp))!='\n')

else

}*(buf+i++)='\n';

*(buf+i)='\0';

return i;

字元』\n』為一行的結束,eof是檔案結束標誌。

測試**:

int main()

char *buf = null;

size_t i=0;

ssize_t l;

while((l=mygetline(&buf,&i,fp))!=-1)

free(buf);

fclose(fp);

exit(exit_success);

return 0;

}

c語言實現getline函式

getline函式可以獲取檔案中的一行資料。原函式形式為 ssize t getline char linepter,size t n,file stream 返回型別ssize t為有符號整形,其值為獲取的字元數,檔案結束則返回 1,包括換行符 n 但不包括字串結束符 0 linepter用來儲存...

C 中的getline 函式

getline 函式是c 庫函式。它會生成乙個包含一串從輸入流讀入的字元的字串,直到以下情況發生會導致生成的此字串結束。1 到檔案結束,2 遇到函式的定界符,3 輸入達到最大限度。我們一般用string輸入字串時不能讀取空格,我們可以用getline 函式從輸入流中讀取,getline 函式之前的回...

C 中的getline函式

c 中本質上有兩種getline函式,一種在標頭檔案 istream 中,是istream類的成員函式。一種在標頭檔案 string 中,是普通函式。一 在 istream 中的getline函式有兩種過載形式 istream getline char s,streamsize n istream ...