導航:首頁 > 文件教程 > fgets讀取文件

fgets讀取文件

發布時間:2021-03-24 18:26:56

1. C語言 怎麼用fgets()讀取一個txt文件中的任意行的信息

如果使用fgets()讀取某個文件,第一次讀取的bufsize為5,而文件的第一行有10個字元(算上』\n』),那麼讀取文件的指針會偏移至當前讀取完的這個字元之後的位置。也就是第二次再用fgets()讀取文件的時候,則會繼續讀取其後的字元。
如果使用fgets() 讀取文件的時候bufsize大於該行的字元總數加2(多出來的兩個,一個保存文件本身的』\n』換行,一個保存字元串本身的結束標識』\0』),文件並不會繼續讀下去,僅僅只是這一行讀取完,隨後指向文件的指針會自動偏移至下一行。

2. C++fopen和fgets怎麼用來讀取文件,舉個例子謝謝

把文件名中的漢字去掉是最簡單的方法。
你如果想用C++標准文件流來讀漢字名文件似乎不好實現,因為標准C++使用的是ANSI字元集,其漢字的編碼方案好像為GB2312,而現在的系統中漢字一般使用unicode字元集,與ansi字元集的中文編碼方案不是同一種,所以無法識別。
如果想要讀入含漢字文件名的文件,最好是將工程換成unicode字元集,並使用windows API的CFile類

3. C語言用fgets()從文件讀取多行字元時出現的問題

fgets函數每次讀取一行,如果讀取的數據存入數組s中,
那麼s[0]為『2』
那麼s[1]為『3』
那麼s[2]為『4』
那麼s[3]為空格
那麼s[4]s[5]為小字編碼

4. C語言fgets讀取頭文件出現問題

1、fgets函數:
原型:char * fgets(char * buf, int bufsize, FILE * stream);
功能:從文件結構體指針stream中讀取數據,每次讀取一行;
說明:讀取的數據保存在buf指向的字元數組中,每次最多讀取bufsize-1個字元(第bufsize個字元賦值為)。如果該行不足bufsize個字元,則讀完該行就結束,如果該行超過bufsize-1個字元,則fgets只返回一個不完整的行,buf緩沖區以字元結束,下一次fgets調用會繼續讀取該行剩餘的字元;
頭文件:stdio.h;
返回值:若讀入成功,返回與參數buf相同的字元指針,若讀入過程中遇到EOF或發生錯誤,返回NULL指針。所以當遇到返回值為NULL的情況時,應使用ferror或feof函數檢查是發生錯誤還是遇到EOF。
2、常式:

#include<stdio.h>
inta;
charb,c[100];
intmain(){
FILE*fp1=fopen("input.txt","r");//打開輸入文件
FILE*fp2=fopen("output.txt","w");//打開輸出文件
if(fp1==NULL||fp2==NULL){//若打開文件失敗則退出
puts("不能打開文件!");
rturn0;
}
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);//關閉輸出文件,相當於保存
return0;
}

5. C語言 怎麼用fgets()把一個文件多行內容讀取到一個字元串中

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
//返回從filename中讀取第m到n行字元保存到mystring,
//如果打不開文件,失敗返回NULL
//如果不足m行,返回NULL,且mystring為空串
//如果不足n行,返回NULL,mystring為m行之後的所有內容
//如果完成成功,返回mystring,且mystring保存m到n行的字元
char*getfilechar(char*filename,intm,intn,char*mystring){
#defineN2000//假設每行長度不超過2000字元
FILE*fp;
inti;
charstr[N];
*mystring='';
if((fp=fopen(filename,"r"))==NULL){
printf("打開文件%s失敗 ",filename);
returnNULL;
}
for(i=1;i<m;i++)
if(fgets(str,N,fp)==NULL){
printf("文件%s長度不足%d行 ",filename,m);
fclose(fp);
returnNULL;
}

for(i=m;i<=n;i++){
if(fgets(str,N,fp)==NULL){
printf("文件%s長度不足%d行 ",filename,n);
fclose(fp);
returnNULL;
}
strcat(mystring,str);
}
fclose(fp);
returnmystring;
}
intmain(){
charmystring[2000];
getfilechar("d:\temp.txt",20,26,mystring);
if(mystring!=NULL)printf("%s",mystring);
}

6. C語言fgets函數讀取文件,為何以行判斷字元串結束

fgets有三個參數, 第二個參數是傳入的空間大小, 也就是第一個參數指向的大小。
如果第二個回參數值為n, 那麼當答實際讀到的字元為n-1個, 或者遇到換行,都會使fgets結束讀取。 注意是n-1, 因為要留一個字元放結束符\0
於是 第一次調用 n=8,實際讀入7個 「15B 18 」這里有兩個空格。
第二次 n=4, 實際讀入3個, "122"
第三次, n=4, 但讀取的時候遇到換行了, 於是只讀了一個換行就返回了, 結果是"\n"
第四次 n=4讀入三個 "166"
第五次 n=8 只讀入一個換行 "\n"
第六次 n=6 讀入16後遇到換行, 實際讀了三個"16\n"
所有都是按照規則來的,對照一下就清楚了。
感覺你是對第二個參數理解不對, 才產生的疑惑。

7. fgets和fread讀取文件的區別

讀字元串函數fgets函數的功能是從指定的文件中讀一個字元串到字元數組中,函數調用的形式為: fgets(字元數組名,n,文件指針); 其中的n是一個正整數。表示從文件中讀出的字元串不超過 n-1個字元。在讀入的最後一個字元後加上串結束標志'\0'。例如:fgets(str,n,fp);的意義是從fp所指的文件中讀出n-1個字元送入 字元數組str中。
fputs函數的功能是向指定的文件寫入一個字元串,其調用形式為: fputs(字元串,文件指針) 其中字元串可以是字元串常量,也可以是字元數組名, 或指針變數.
整塊數據的讀寫函數。 可用來讀寫一組數據,如一個數組元素,一個結構變數的值等。讀數據塊函數調用的一般形式為: fread(buffer,size,count,fp); 寫數據塊函數調用的一般形式為:
fwrite(buffer,size,count,fp); 其中buffer是一個指針,在fread函數中,它表示存放輸入數據的首地址。在fwrite函數中,它表示存放輸出數據的首地址。 size 表示數據塊的位元組數。count 表示要讀寫的數據塊塊數。fp 表示文件指針。

8. C語言fgets如何循環讀取整個文本文件的內容

while(!feof(fp))
{
fgets(buff,sizeof(buff),fp);

SetDlgItemText(hwnd,IDC_RICHEDIT,buff);

}
不是只讀取了一來行,源是只在RICHEDIT這裡面顯示了一行,可能是數據放到RICHEDIT這裡面被覆蓋了,試試用EDIT_BOX控制項吧,在style裡面勾選want return選項
-物聯網校企聯盟技術部

9. 關於C語言fgets()讀取文件

C語言中fgets()函數說明:fgets()用來從參數stream 所指的文件內讀入字元並存到參數s 所指的內存空間,直到出現換行字元、讀到文件尾或是已讀了size-1 個字元為止, 最後會加上NULL 作為字元串結束。

原型 char * fgets(char * s, int n,FILE *stream);

參數:

s: 字元型指針,指向存儲讀入數據的緩沖區的地址。

n: 從流中讀入n-1個字元。

stream : 指向讀取的流。

返回值:

1. 當n<=0 時返回NULL,即空指針。

2. 當n=1 時,返回空串""。

3. 如果讀入成功,則返回緩沖區的地址。

4. 如果讀入錯誤或遇到文件結尾(EOF),則返回NULL。

標准庫中fgets(...)的實現如下:

char*fgets(char*s,intn,FILE*stream)
{
registerintc;
registerchar*cs;
cs=s;
while(--n>0&&(c=getc(stream))!=EOF)
if((*cs++=c)==' ')
break;
*cs='';
return(c==EOF&&cs==s)?NULL:s;
}
閱讀全文

與fgets讀取文件相關的資料

熱點內容
學編程哪個機構口碑好 瀏覽:65
在一個好的網站里怎麼投放廣告 瀏覽:181
天貓魔盒怎麼共享文件 瀏覽:478
不同文件格式linux和windows 瀏覽:962
foxpro是資料庫 瀏覽:65
湖北自考在籍數據什麼意思 瀏覽:420
數據處理的服務有哪些 瀏覽:785
殘陽網路 瀏覽:698
linux重新映射按鍵失靈了 瀏覽:531
java視頻加水印 瀏覽:502
下廚房iphone 瀏覽:582
js實現左右框 瀏覽:78
機器找不到硬碟裡面的數據怎麼辦 瀏覽:942
計算機編程距離是什麼意思 瀏覽:986
哪裡可以看海關數據 瀏覽:969
蘋果電腦怎麼接收藍牙傳APP 瀏覽:138
台式機裝雙系統教程 瀏覽:649
matlab調用c代碼 瀏覽:949
56版本的chromedriver 瀏覽:361
蘋果4s文件怎麼打開 瀏覽:88

友情鏈接