當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


C++ fgets()用法及代碼示例


C++ 中的fgets() 函數從給定文件流中讀取指定的最大字符數。

fgets()原型

char* fgets(char* str,int count,FILE* stream);

fgets() 函數從給定的文件流中讀取最多 count-1 字符並將它們存儲在 str 指向的數組中。

解析會一直持續到文件結束或找到換行符 (\n)。數組str 也將包含換行符,以防萬一被發現。如果沒有發生錯誤,則會在 str 的末尾寫入一個空字符。

它在<cstdio> 頭文件中定義。

參數:

  • str:指向存儲文件內容的字符數組的指針。
  • count:要寫入的最大字符數。
  • stream: 讀取字符的文件流。

返回:

  • 成功時,fgets() 函數返回str,失敗時返回空指針。
  • 如果由於文件結束條件導致失敗,則設置eof 指示符。在這種情況下,str 的內容不會改變。
  • 如果失敗是由於其他錯誤引起的,則設置錯誤指示器。在這種情況下,str 的內容是不確定的。它們甚至可能不是空終止的。

示例:fgets() 函數的工作原理

#include <iostream>
#include <cstdio>

using namespace std;

int main()
{
    int count = 10;
    char str[10];
    FILE *fp;
    
    fp = fopen("file.txt","w+");
    fputs("An example file\n", fp);
    fputs("Filename is file.txt\n", fp);
    
    rewind(fp);
    
    while(feof(fp) == 0)
    {
        fgets(str,count,fp);
        cout << str << endl;
    }
    
    
    fclose(fp);
    return 0;
}

運行程序時,可能的輸出將是:

An exampl
e file

Filename
is file.t
xt

相關用法


注:本文由純淨天空篩選整理自 C++ fgets()。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。