當前位置:首頁 » 編程語言 » c語言循環讀取文件
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

c語言循環讀取文件

發布時間: 2022-02-16 12:56:30

『壹』 如何用c語言對多個文件數據循環處理

#include<stdio.h>
int main()
{
int data[100];
int i=1;
FILE *fp=NULL;
char filename[10];
for(int i=1;i<=100;i++)
{
memset(filename,0,sizeof(filename));
itoa(i,filename,10);//將整型i轉成對應的字元串形式
strcat(filename,".txt");//這樣filename就是當前的文件了
if(fp=fopen(filename,"r"))==NULL)
return -1;
//讀取你想要的內容到data,可以用fscanf等函數
fclose(fp);
}
fp=fopen("out.txt","w");
if(fp==NULL)
return -1;
//寫到out.txt中,用fprintf函數即可
fclose(fp);
return 0;
}

『貳』 c語言循環中fread如何讀取文件

#include<stdio.h>
#include<stdlib.h>
intmain()
{
intnumber[400],i;
FILE*fp;
fp=fopen("number.dat","r");
for(i=0;i<400;i+=100)
fread(number+i,sizeof(int),100,fp);
}

『叄』 c語言讀取文件然後保存到數組中

c語言讀取文件然後保存到數組中的流程是:

  1. 打開文件

  2. 根據文件格式循環讀取數據

  3. 將數據存入數據

  4. 重復2-3,直到文件讀取完畢

  5. 關閉文件

下面是示例代碼:

#include<stdio.h>
intmain()
{
ints[5][8];
intnum[]={0,6,5,6};
inti,j;
FILE*fp;
if((fp=fopen("D:\test.txt","r"))==NULL)
{puts("Notest.txt");return0;}
for(i=1;i<=3;i++)
{
for(j=1;j<=num[i];j++)
fscanf(fp,"%d",&s[i][j]);
}
for(i=1;i<=3;i++)
{
for(j=1;j<=num[i];j++)
{
if(j==1)
printf("%c",s[i][j]);
else
printf("%d",s[i][j]);
}
puts("");
}
fclose(fp);
return0;
}

『肆』 C語言fgets如何循環讀取整個文本文件的內容

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
//函數返回fname指定文件的全部內容,如果打不開文件,則返回NULL,並顯示打開文件錯誤
char *getfileall(char *fname){
FILE *fp;
char *str;
char txt[1000];
int filesize;
if ((fp=fopen(fname,"r"))==NULL){
printf("打開文件%s錯誤\n",fname);
return NULL;
}

fseek(fp,0,SEEK_END);

filesize = ftell(fp);
str=(char *)malloc(filesize);
str[0]=0;

rewind(fp);
while((fgets(txt,1000,fp))!=NULL){
strcat(str,txt);
}
fclose(fp);
return str;
}
int main(){
char *p;
char *fname="D:\\temp.txt";
p=getfileall(fname);
if (p!=NULL) puts(p);
}

『伍』 如何用C語言循環讀取文件內容

  1. 循環讀取一個文件的內容。

    這樣做沒有任何意義,不如把讀取的內容保持在變數當中,節省空間時間。如果非要反復讀取的話可以使用rewind函數把文件指針重置。

    函數名: rewind()
    功 能: 將文件內部的位置指針重新指向一個流(數據流/文件)的開頭
    注意:不是文件指針而是文件內部的位置指針,隨著對文件的讀寫文件的位置指針(指向當前讀寫位元組)向後移動。而文件指針是指向整個文件,如果不重新賦值文件指針不會改變。rewind函數作用等同於 (void)fseek(stream, 0L, SEEK_SET);

  2. 循環讀取多個文件的內容。

    把多個文件名存在一個字元串數組當中。使用循環語句反復打開-讀取-關閉即可。

    例如:

    char*s[3]={"文件一","文件二","文件三"};
    for(i=0;i<3;i++){
    f=fopen(s[i]);//打開第i個文件
    //讀取數據
    fclose(f);//關閉文件
    }

『陸』 C語言 關於循環讀取多行文件的問題

這段程序應該是存在問題的,在第一個while循環里你打開了文件B.txt,退出循環前已經關閉,即在第二個while循環的時候,B.txt文件是關閉的,所以while ( fscanf(fpB,"%s %d %d %d\n",BS0,&BS1,&BS2,&BS3)!=EOF )這句代碼會出錯,可以這樣
fpB = fopen("B.txt","r");

while ( fscanf(fpB,"%s %d %d %d\n",BS0,&BS1,&BS2,&BS3)!=EOF )

{}
這其實是重新打開了文件B.txt,自然數據指針是在文件首的

『柒』 關於C語言中文本文件的逐行讀取的實現

若文件不存在,則會建立該文件,如果文件存在,寫入的數據會被加到文件尾,即文件原先的內容會被保留。

以附加方式打開可讀寫的文件。若文件不存在,則會建立該文件,如果文件存在,寫入的數據會被加到文件尾後,即文件原先的內容會被保留。

C語言中文本文件的逐行讀取的實現的代碼如下:

#include<stdio.h>

main()

{

FILE * fp;

fp=fopen(「noexist」,」a+」);

if(fp= =NULL) return;

fclose(fp);

}

(7)c語言循環讀取文件擴展閱讀

1、如果輸入文本每行中沒有空格,則line在輸入文本中按換行符分隔符循環取值。

2、如果輸入文本中包括空格或製表符,則不是換行讀取,line在輸入文本中按空格分隔符或製表符或換行符特環取值。

3、可以通過把IFS設置為換行符來達到逐行讀取的功能。

『捌』 c語言逐行讀取文件

可以使用fgets函數。

1 函數名:

fgets

2 聲明:

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

3 頭文件:

stdio.h

4 功能:

從文件結構體指針stream中讀取數據,每次讀取一行。讀取的數據保存在buf指向的字元數組中,每次最多讀取bufsize-1個字元(第bufsize個字元賦''),如果文件中的該行,不足bufsize個字元,則讀完該行就結束。如若該行(包括最後一個換行符)的字元數超過bufsize-1,則fgets只返回一個不完整的行,但是,緩沖區總是以NULL字元結尾,對fgets的下一次調用會繼續讀該行。函數成功將返回buf,失敗或讀到文件結尾返回NULL。因此我們不能直接通過fgets的返回值來判斷函數是否是出錯而終止的,應該藉助feof函數或者ferror函數來判斷。


5 參數:

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

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

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


6 返回值:

成功,則返回第一個參數buf;

在讀字元時遇到end-of-file(文件結尾),則eof指示器被設置,如果還沒讀入任何字元就遇到這種情況,則buf保持原來的內容,返回NULL;

如果發生讀入錯誤,error指示器被設置,返回NULL,buf的值可能被改變。


7 示例代碼:

逐行讀取in.txt中的數據,並列印。每行不超過100個字元。

intmain()
{
FILE*fp;
charbuf[101];
fp=fopen("in.txt","r");//打開文件
while(fgets(buf,sizeof(buf),fp))//每次讀取一行數據,直到讀取失敗。
{
printf("%s ",buf);//列印該行。
}
fclose(fp);//關閉文件。

return0;
}

『玖』 C語言中,如何實現從文件中讀取數據(大量的數據)後,在循環體中使用,每次傳遞3個值到數組。

假定文本文件,全部是 int 數據,空格 分隔。
FILE *fp;
int i =0, n;
fp = fopen("jsz.txt","r"); //打開文件,用來讀。
if (!fp) { ......打開失敗 的 處理 };
while(1){
fscanf(fp,"%d %d %d", &a[i], &a[i+1],&a[i+2]);
if ( feof(fp) ) break; // 文件終了判斷
i=i+3; // 下3個的 起始元素下標
}
fclose(fp); // 關閉文件

『拾』 C語言中怎麼實現循環讀取文件.文件名為A_in1.txt,A_in2.txt,A_in3.txt,A_in4.txt

#include<stdio.h>
#include<io.h>
intmain()
{
longhandle;
inti=0,j=0;
struct_finddata_tfileinfo;

handle=_findfirst("C:\*",&fileinfo);

do{
puts(fileinfo.name);
}while(!_findnext(handle,&fileinfo));

_findclose(handle);
return(0);
}