目錄
零基礎 C/C++ 學習路線推薦 : C/C++ 學習目錄 >> C 語言基礎入門
一.fgets 函數簡介
fgets 函數功能為從指定的流中讀取數據,每次讀取一行。其原型為:
#include <stdio.h>
#include <stdlib.h>
/*
*描述:從指定的流 stream 讀取一行,並把它存儲在str所指向的字符串內。當讀取(n-1)個字符時,或者讀取到換行符時,或者到達文件末尾時,它會停止
*
*參數:
* [in] str: 緩沖區,用來存放要讀取的字符串;
* [in] n: 要讀取的最大字符數(包括最后的空字符),通常是使用以 str 傳遞的數組長度;
* [in] stream:文件指針句柄;
*
*返回值:如果成功,該函數返回讀取到的數據,內容和 str 緩沖區數據一樣。如果到達文件末尾或者沒有讀取到任何字符,str 的內容保持不變,並返回一個空指針。如果發生錯誤,返回一個空指針
*/
char *fgets(char *str, int n, FILE *stream);
如果文件中的該行,不足 n-1 個字符,則讀完該行就結束;
如若該行(包括最后一個換行符)的字符數超過 n-1 ,則 fgets 只返回一個不完整的行,但是,緩沖區總是以 NULL 字符結尾,對 fgets 的下一次調用會繼續讀該行;
函數成功將返回 stream,失敗或讀到文件結尾返回 NULL 。因此不能直接通過 fgets 的返回值來判斷函數是否是出錯而終止的,應該借助 feof 函數或者 ferror 函數來判斷;
二.fgets 函數使用
/******************************************************************************************/
//@Author:猿說編程
//@Blog(個人博客地址): www.codersrc.com
//@File:C語言教程 - C語言 文件讀寫 fgets 函數
//@Time:2021/07/29 07:30
//@Motto:不積跬步無以至千里,不積小流無以成江海,程序人生的精彩需要堅持不懈地積累!
/******************************************************************************************/
#include <stdio.h>
int main()
{
FILE *fp;
char str[60];
/* 打開用於讀取的文件 */
fp = fopen("file.txt" , "r");
if(fp == NULL) {
perror("打開文件時發生錯誤");
return(-1);
}
if( fgets (str, 60, fp)!=NULL ) {
/* 向標准輸出 stdout 寫入內容 */
printf("%s \n", str);
}
fclose(fp);
return(0);
}
/*
輸出:
假設我們有一個文本文件 file.txt,它的內容如下。文件將作為實例中的輸入:
www.codersrc.com - c語言教程
讓我們編譯並運行上面的程序,這將產生以下結果:
www.codersrc.com - c語言教程
*/
三.猜你喜歡
- C 語言 數組下標越界和內存溢出區別
- C 語言 使用指針遍歷數組
- C 語言 指針和數組區別
- C 語言 指針數組和數組指針區別
- C 語言 野指針
- C 語言 函數值傳遞和址傳遞
- C 語言 函數不定長參數
- C 語言 函數指針
- C 語言 指針函數
- C 語言 回調函數 callback
- C 語言 #pragma once
- C 語言 #include <> 與 #include “” 區別
- C 語言 const 修飾函數參數
- C 語言 const 和 define 區別
- C 語言 #運算符
- C 語言 ##運算符
- C 語言 __VA_ARGS__
- C 語言 ##__VA_ARGS__
- C 語言 函數不定長參數 ##__VA_ARGS__經典案例
- C 語言 va_start / va_end / va_arg 自定義 printf 函數
- C 語言 main 函數
- C 語言 main 函數參數 main(int argc, char *argv[])
- C 語言 局部變量
- C 語言 全局變量
- C 語言 全局變量和局部變量區別
- C 語言 static
- C 語言 extern
未經允許不得轉載:猿說編程 » C 語言 文件讀寫 fgets 函數
本文由博客 - 猿說編程 猿說編程 發布!