c語言fgets用法
㈠ 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函數注意細節如下:
從文件結構體指針stream中讀取數據,每次讀取一行。
讀取的數據保存在buf指向的字元數組中,每次最多讀取bufsize-1個字元(第bufsize個字元賦'