C語言 從stdin讀取一行字串的多種方法

2021-07-25 05:25:17 字數 2613 閱讀 7044

1. 

gets

gets

函式的標頭檔案是

,原型如下:

char *gets(char *s);

gets

從stdin

中讀入一行內容到

s指定的

buffer

中,當遇到換行符或

eof時讀取結束。讀取成功時,返回

s位址;失敗時返回

null

。需要注意的是,

gets

會將行末尾的

'\n'

字元或eof

替換成'\0'

,這樣,

gets

讀取的內容中不包括

'\n'

字元。如果要獲取讀取字串的長度,可以呼叫

strlen

函式獲得。

1.#include 2.#include 3.#include 4.  

5.int main()  

6.  

15.      

16.    // free buff  

17. free(buff);   

18.}

2. fgets

fgets

函式的標頭檔案是

,原型如下:

char *fgets(char *s, int size, file*stream);

fgets

從stream

中讀取最多

size-1

大小的內容到

s指定的

buffer

中,當遇到換行符或

eof時讀取結束。讀取成功時,返回

s位址;失敗時返回

null

。需要注意的是,

fgets

會在所讀取的內容後面新增

'\0'

,這樣,

fgets

讀取的內容中會包括行末尾的

'\n'

字元。如果要獲取讀取字串的長度,可以呼叫

strlen

函式獲得。

1.#include 2.#include 3.#include 4.  

5.int main()  

6.     

15.    // free buff  

16.    free(buff);   

}

3. 3. 

getline

getline

函式的標頭檔案是

,原型如下:

ssize_t getline(char **lineptr,size_t *n, file *stream);

getline

從stream

中讀取一行內容到

*lineptr

所指定的

buffer

中,當遇到換行符或

eof時讀取結束。*n是

*lineptr

所指定的

buffer

的大小,如果*

n小於讀入的內容長度,

getline

會自動擴充套件

buffer

長度,並更新

*lineptr和*n

的值。讀取成功時,返回讀入的字元個數;失敗時返回

-1。需要注意的是,

gelines

讀取的內容中會包括行末尾的

'\n'

字元。

1.#include 2.#include 3.  

4.int  

5.main(void)  

6.  

15.  

16.   free(line);  

17.   exit(exit_success);  

18.}

1. 自己實現

my_getline

可以自己實現,原型如下:

int my_getline(char* line, intmax_size);

my_getline

從stdin

中讀取最多

max_size-1

個字元到

line

所指定的

buff

中,當遇到換行符或

eof時讀取結束。讀取成功時,返回讀取的字串長度;失敗時返回0。

my_getline

讀取的內容中會包括行末尾的

'\n'

字元。

1.#include 2.#include 3.  

4.int my_getline(char* line, int max_size)  

5.  

13.  

14.      

15.    line[len] = '\0';  

16.    return len;  

17.}  

18.  

19.int main()  

20.  

30.      

31.    free(buff);  

32.}

C語言從stdin讀取一行字串的幾種方法

c語言從 stdin讀取一行字串的幾種方法 gets gets函式的標頭檔案是 原型如下 char gets char s gets從 stdin中讀入一行內容到 s指定的 buffer中,當遇到換行符或 eof時讀取結束。讀取成功時,返回 s位址 失敗時返回 null。需要注意的是,gets會將行...

C語言一行一行讀取檔案

c語言中,使用fgets函式可以一行行讀du取檔案。1 fgets函式 原型 char fgets char buf,int bufsize,file stream 功能 從檔案結構體指標stream中讀取資料,每次讀取一行。說明 讀取的資料儲存在buf指向的字元陣列中,每次最多讀取bufsize ...

C語言 一行一行讀取檔案txt

參考 怎麼用c語言實現讀取乙個txt檔案裡的資料 要按行讀出來 開啟檔案 fopen 需要開啟的路徑 然後使用fgets函式讀取行 include include include define max line 1024 intmain while fgets buf,max line,fp nul...