c語言從
stdin讀取一行字串的幾種方法
gets
gets函式的標頭檔案是
,原型如下:
char *gets(char *s);
gets從
stdin中讀入一行內容到
s指定的
buffer中,當遇到換行符或
eof時讀取結束。讀取成功時,返回
s位址;失敗時返回
null。需要注意的是,
gets會將行末尾的
'\n'字元或
eof替換成
'\0',這樣,
gets讀取的內容中不包括
'\n'字元。如果要獲取讀取字串的長度,可以呼叫
strlen函式獲得。
#include #include #include int main()
// free buff
free(buff);
}
fgets
fgets函式的標頭檔案是
,原型如下:
char *fgets(char *s, int size, file*stream);
fgets從
stream中讀取最多
size-1大小的內容到
s指定的
buffer中,當遇到換行符或
eof時讀取結束。讀取成功時,返回
s位址;失敗時返回
null。需要注意的是,
fgets會在所讀取的內容後面新增
'\0',這樣,
fgets讀取的內容中會包括行末尾的
'\n'字元。如果要獲取讀取字串的長度,可以呼叫
strlen函式獲得。
#include #include #include int main()
// free buff
free(buff);
}
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'字元。
#include #include int
main(void)
free(line);
exit(exit_success);
}
自己實現
my_getline 可以自己實現,原型如下:
int my_getline(char* line, intmax_size);
my_getline從
stdin中讀取最多
max_size-1個字元到
line所指定的
buff中,當遇到換行符或
eof時讀取結束。讀取成功時,返回讀取的字串長度;失敗時返回
0。my_getline讀取的內容中會包括行末尾的
'\n'字元。
#include #include int my_getline(char* line, int max_size)
line[len] = '\0';
return len;
}int main()
free(buff);
}
參考:
[1] linux programmer's manual.
[2] brian w. kernighan and dennis m.ritchie. the c programming language, second edition.
C語言 從stdin讀取一行字串的多種方法
1.gets gets 函式的標頭檔案是 原型如下 char gets char s gets 從stdin 中讀入一行內容到 s指定的 buffer 中,當遇到換行符或 eof時讀取結束。讀取成功時,返回 s位址 失敗時返回 null 需要注意的是,gets 會將行末尾的 n 字元或eof 替換成...
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...