當前位置:首頁 » 編程語言 » c語言fgets用法

c語言fgets用法

發布時間: 2024-05-10 10:54:21

c語言 如何一行行讀文件

C語言中,使用fgets函數遍可以一行行讀取文件。
1、fgets函數:
原型:char
*
fgets(char
*
buf,
int
bufsize,
FILE
*
stream);
功能:從文件結構體指針stream中讀取數據,每次讀取一行。
說明:讀取的數據保存在buf指向的字元數組中,每次最多讀取bufsize-1個字元(第bufsize個字元賦值為\0)。如果該行不足bufsize個字元,則讀完該行就結束,如果該行超過bufsize-1個字元,則fgets只返回一個不完整的行,buf緩沖區以\0字元結束,下一次fgets調用會繼續讀取該行剩餘的字元;
頭文件:stdio.h;
返回值:若讀入成功,返回與參數buf相同的字元指針,若讀入過程中遇到EOF或發生錯誤,返回NULL指針。所以當遇到返回值為NULL的情況時,應使用ferror或feof函數檢查是發生錯誤還是遇到EOF。
2、常式:
#include
int a;
char b,c[100];
int main(){
FILE * fp1 = fopen("input.txt", "r");//打開輸入文件
FILE * fp2 = fopen("output.txt", "w");//打開輸出文件
if (fp1==NULL || fp2==NULL) {//若打開文件失敗則退出
puts("不能打開文件!");
rturn 0;
}
fscanf(fp1,"%d",&a);//從輸入文件讀取一個整數
b=fgetc(fp1);//從輸入文件讀取一個字元
fgets(c,100,fp1);//從輸入文件讀取一行字元串
printf("%ld",ftell(fp1));//輸出fp1指針當前位置相對於文件首的偏移位元組數
fputs(c,fp2);//向輸出文件寫入一行字元串
fputc(b,fp2);//向輸出文件寫入一個字元
fprintf(fp2,"%d",a);//向輸出文件寫入一個整數
fclose(fp1);//關閉輸入文件
fclose(fp2);//關閉輸出文件,相當於保存
return 0;
}

㈡ c語言操作文本的基本使用方法

c語言操作文本應該怎麼使用,這對於很多新手來說,是很難的一件事情,下面我為大家帶來了關於c語言操作文本的基本使用方法,歡迎大家閱讀!

c語言操作文本的基本使用方法

1.字元讀寫:

fgetc函數的功能是從指定的文件中讀一個字元,函數調用的形式為:

字元變數=fgetc(文件指針);

fputc函數的功能是把一個字元寫入指定的文件中,函數調用的形式為:

fputc(字元量,文件指針);

2.字元串讀寫

讀字元串函數fgets

函數的功能是從指定的文件中讀一個字元串到字元數組中,函數調用的形式為:

fgets(字元數組名,n,文件指針);

寫字元串函數fputs

fputs函數的功能是向指定的文件寫入一個字元串,其調用形式為:

fputs(字元串,文件指針);

3.數據塊讀寫

讀數據塊函數調用的一般形式為:

fread(buffer,size,count,fp);

寫數據塊函數調用的`一般形式為:

fwrite(buffer,size,count,fp);

4.格式化讀寫

fscanf函數,fprintf函數與前面使用的scanf和printf函數的功能相似,都是格式化讀寫函數。兩者的區別在於fscanf函數和fprintf函數的讀寫對象不是鍵盤和顯示器,而是磁碟文件。

這兩個函數的調用格式為:

fscanf(文件指針,格式字元串,輸入表列);

fprintf(文件指針,格式字元串,輸出表列);

文件定位

移動文件內部位置指針的函數主要有兩個,即rewind函數和fseek函數。

rewind函數前面已多次使用過,其調用形式為:

rewind(文件指針);

它的功能是把文件內部的位置指針移到文件首。

下面主要介紹fseek函數。fseek函數用來移動文件內部位置指針,其調用形式為:

fseek(文件指針,位移量,起始點);

其中:

「文件指針」指向被移動的文件。

「位移量」表示移動的位元組數,要求位移量是long型數據,以便在文件長度大於64KB時不會出錯。當用常量表示位移量時,要求加後綴「L」。

「起始點」表示從何處開始計算位移量,規定的起始點有三種:文件首,當前位置和文件尾。其表示方法如下表。

c語言操作文本的基本使用方法1

起始點表示符號數字表示

文件首SEEK_SET0

當前位置SEEK_CUR1

文件末尾SEEK_END2

例如:

fseek(fp,100L,0);

其意義是把位置指針移到離文件首100個位元組處。

還要說明的是fseek函數一般用於二進制文件。在文本文件中由於要進行轉換,故往往計算的位置會出現錯誤。

c語言中常用的文件檢測函數有以下幾個。

文件結束檢測函數feof函數

調用格式:

feof(文件指針);

功能:判斷文件是否處於文件結束位置,如文件結束,則返回值為1,否則為0。

讀寫文件出錯檢測函數

ferror函數調用格式:

ferror(文件指針);

功能:檢查文件在用各種輸入輸出函數進行讀寫時是否出錯。如ferror返回值為0表示未出錯,否則表示有錯。

文件出錯標志和文件結束標志置0函數

clearerr函數調用格式:

clearerr(文件指針);

功能:本函數用於清除出錯標志和文件結束標志,使它們為0值。


㈢ C語言怎樣一行一行讀文件

C語言可以通過fgets函數一次讀一行數據。

fgets函數原型如下:

char *fgets(char *buf, int bufsize, FILE *stream);

參數 說明

*buf: 字元型指針,指向用來存儲所得數據的地址。

bufsize: 整型數據,指明存儲數據的大小。

*stream: 文件結構體指針,將要讀取的文件流。

fgets函數注意細節如下:

  1. 從文件結構體指針stream中讀取數據,每次讀取一行。

  2. 讀取的數據保存在buf指向的字元數組中,每次最多讀取bufsize-1個字元(第bufsize個字元賦''),如果文件中的該行,不足bufsize個字元,則讀完該行就結束。

  3. 如若該行(包括最後一個換行符)的字元數超過bufsize-1,則fgets只返回一個不完整的行,但是,緩沖區總是以NULL字元結尾,對fgets的下一次調用會繼續讀該行。

  4. 函數成功將返回buf,失敗或讀到文件結尾返回NULL

㈣ C語言怎樣讀取文本的每一行

可以使用fgets函數來實現。

1 函數名:
fgets
2 聲明形式:
char *fgets(char *buf, int bufsize, FILE *stream);
3 頭文件:
stdio.h

4 功能及參數說明:
從stream中讀取一行數據存到buf中。如果數據長度小於bufsize,那麼讀入整行數據,並將換行符轉換為字元串結束符\0。 如果數據長度超過bufsize,那麼只讀入bufsize大小的數據,並在結尾添加\0。
5 返回值:
成功,則返回第一個參數buf;
在讀字元時遇到end-of-file,則eof指示器被設置,如果還沒讀入任何字元就遇到這種情況,則buf保持原來的內容,返回NULL;
如果發生讀入錯誤,error指示器被設置,返回NULL,buf的值可能被改變。

熱點內容
phpcgi啟動 發布:2024-05-20 22:38:57 瀏覽:578
嵌入式存儲伺服器 發布:2024-05-20 22:14:55 瀏覽:395
sql分組條件 發布:2024-05-20 22:08:49 瀏覽:16
配網web伺服器一個IP地址 發布:2024-05-20 22:07:16 瀏覽:725
電腦板伺服器地址175 發布:2024-05-20 22:03:30 瀏覽:959
編譯靜態函數時 發布:2024-05-20 21:51:20 瀏覽:351
如何在別人的伺服器加模組 發布:2024-05-20 21:28:29 瀏覽:61
伺服器的bios晶元電腦店有嗎 發布:2024-05-20 21:28:26 瀏覽:224
剪輯電影什麼配置 發布:2024-05-20 21:25:17 瀏覽:818
解壓神器中的詭異事件 發布:2024-05-20 21:17:59 瀏覽:7