C语言fgets()函数(以指定长度读取文件中的字符,并存入字符数组变量中)
C語言fgets()函數(shù)(以指定長度讀取文件中的字符,并存入字符數(shù)組變量中)
需要引入C 標(biāo)準(zhǔn)庫 - <stdio.h>
文章目錄
- 描述
- 聲明
- 參數(shù)
- 返回值
- 實(shí)例
- 測(cè)試(確實(shí)只能讀n-1個(gè)字符)
描述
C 庫函數(shù) char *fgets(char *str, int n, FILE *stream) 從指定的流 stream 讀取一行,并把它存儲(chǔ)在 str 所指向的字符串內(nèi)。當(dāng)讀取 (n-1) 個(gè)字符時(shí),或者讀取到換行符時(shí),或者到達(dá)文件末尾時(shí),它會(huì)停止,具體視情況而定。
聲明
下面是 fgets() 函數(shù)的聲明。
char *fgets(char *str, int n, FILE *stream)參數(shù)
- str – 這是指向一個(gè)字符數(shù)組的指針,該數(shù)組用來存儲(chǔ)要讀取的字符串。
- n – 這是要讀取的最大字符數(shù)(包括最后的空字符)。通常是使用以 str 傳遞的數(shù)組長度。
- stream – 這是指向 FILE 對(duì)象的指針,該 FILE 對(duì)象標(biāo)識(shí)了要從中讀取字符的流。
返回值
如果成功,該函數(shù)返回相同的 str 參數(shù)。如果到達(dá)文件末尾或者沒有讀取到任何字符,str 的內(nèi)容保持不變,并返回一個(gè)空指針。
如果發(fā)生錯(cuò)誤,返回一個(gè)空指針。
實(shí)例
下面的實(shí)例演示了 fgets() 函數(shù)的用法。
#include <stdio.h>int main() {FILE *fp;char str[60];/* 打開用于讀取的文件 */fp = fopen("file.txt" , "r");if(fp == NULL) {perror("打開文件時(shí)發(fā)生錯(cuò)誤");return(-1);}if( fgets (str, 60, fp)!=NULL ) {/* 向標(biāo)準(zhǔn)輸出 stdout 寫入內(nèi)容 */puts(str);}fclose(fp);return(0); }假設(shè)我們有一個(gè)文本文件 file.txt,它的內(nèi)容如下。文件將作為實(shí)例中的輸入:
We are in 2014讓我們編譯并運(yùn)行上面的程序,這將產(chǎn)生以下結(jié)果:
We are in 2014測(cè)試(確實(shí)只能讀n-1個(gè)字符)
test.txt
abcdefghijklmnmain.cpp
#include <stdio.h> #include <stdlib.h> #include <string.h>int main() {FILE* fp;char str[60];fopen_s(&fp ,"test.txt", "r");if (fp == NULL) {perror("打開文件時(shí)發(fā)生錯(cuò)誤");return(-1);}fgets(str, 6, fp);printf("%s\n", str);return(0); }運(yùn)行結(jié)果:
abcde參考文章:C 庫函數(shù) - fgets()
總結(jié)
以上是生活随笔為你收集整理的C语言fgets()函数(以指定长度读取文件中的字符,并存入字符数组变量中)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: (深入理解计算机系统) bss段,dat
- 下一篇: C语言strstr()函数(在主字符串里